Capturing a cluster effect with targeted digital-content exposures

ABSTRACT

This disclosure covers methods, non-transitory computer readable media, and systems that determine a cluster effect representing the impact that a user&#39;s digital-content exposure has on other users&#39; conversion actions. The disclosed methods, non-transitory computer readable media, and systems detect the downloads, purchases, or other forms of consumption of a featured item that result from users within the same cluster viewing digital content featuring the item. In some embodiments, the methods, non-transitory computer readable media, and systems apply the cluster effect by, for example, generating a conversion report representing the cluster effect or by providing tools that exploit the cluster effect in distributing digital content.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.15/862,430, filed on Jan. 4, 2018. The aforementioned application ishereby incorporated by reference in its entirety.

BACKGROUND

Distributing digital content poses a unique set of challenges totracking the connection between users' exposure to digital content andconversion actions. Such conversion actions may include the download,purchase, streaming or other consumption of an item featured in digitalcontent. In contrast to movement in the physical world, a network usermay navigate from one website to another to purchase or otherwiseconsume an item. Some software application interfaces offer the samenavigation functionality.

Exposure to digital content is not, however, always or even often anisolated experience. A user may converse with other users concerningdigital content offline. A user may also share digital contentelectronically sending a link (e.g., a “URL”) to another user, forexample. These conversations and digital-sharing events can prompt otherusers to purchase or otherwise consume a featured item as part of anindirect conversion action. These indirect conversion actions haveproven difficult (if not impossible) for conventionalconversion-tracking techniques to detect.

To track the connection between exposure to digital content andconversion actions, certain websites, applications, and other digitalmedia have implemented some network-specific techniques. For example,some web servers use cookies for a user's web browser to track a usernavigating from one digital touchpoint to another digital touchpoint.The web server may, for instance, use a cookie to assign a uniqueidentifier to the user's browser when the browser requests a digitaladvertisement and then subsequently track the browser's navigation toother websites. As another example, some websites insert a transparentpixel tag into a web page and track a user's navigation from webpage towebpage. Such pixel tracking enables digital advertisers to track auser's navigation and consumption of advertised items. In some cases,application servers track in-application actions, such as purchases orreactions to posts, or track device identifiers as a user receives adigital advertisement and subsequently downloads an application or makesa purchase.

But these and other conventional conversion-tracking techniques havesignificant limits that fail to capture actions outside of a computernetwork as well as digital-sharing events that indirectly affectconversion. For instance, conventional cookies, pixel tracking, andin-application tracking do not detect conversations between networkusers concerning digital content. Nor do such conventionalconversion-tracking techniques detect other interactions outside of thenetwork that prompt users to consume or purchase an item featured indigital content.

Similarly, conventional conversion-tracking techniques do not track theconnection between digital content displayed on a device that a user inturn shows to other users—resulting in another user's conversion action.Such conventional techniques cannot track the connection between adigital message, post, video, or other social-networking events thatindirectly result in another user's conversion action. In sum,conventional conversion-tracking techniques are often user-specific andfail to capture the impact and reach that outside-network actions anddigital-sharing activity have on conversion actions.

SUMMARY

This disclosure describes one or more embodiments of methods,non-transitory computer readable media, and systems that solve theforegoing problems in addition to providing other benefits. While thissummary refers to systems for simplicity, the summary also applies tocertain disclosed methods and non-transitory computer readable media. Tosolve the foregoing and other problems, the disclosed systems determinea cluster effect representing the impact that a user's digital-contentexposure has on other users' conversion actions. The disclosed systemsdetect the downloads, purchases, or other forms of consumption of afeatured item that result from users within the same cluster viewingdigital content featuring the item. The systems also optionally applythe cluster effect by, for example, generating a conversion reportrepresenting the cluster effect or by providing tools that exploit thecluster effect in distributing digital content.

In some embodiments, for instance, the systems generate clusters ofusers, where each cluster has one or more users. The systems thenseparate the clusters of users into two groups—that is, a first group ofclusters and a second group of clusters. The systems subsequentlydetermine incremental lifts for different trial groups. For example, thesystems determine a first incremental lift between a first test groupand a first control group, where each such group comprises clusters ofusers from the first group of clusters. The systems also determine asecond incremental lift between a second test group and a second controlgroup, where each such group comprises individual users from the secondgroup of clusters. By comparing the first incremental lift to the secondincremental lift, the systems determine a cluster effect.

The disclosed systems overcome the limits of conventionalconversion-tracking techniques. By determining an incremental lift fortrial groups organized by either clusters of users or by individualusers, the disclosed systems detect any differences in conversion that adigital-content delivery may have on multiple users within a cluster.Relatedly, by determining a cluster effect representing the differencebetween compared incremental lifts, the disclosed systems indirectlydetect the influence that a user's outside-network actions may have onother users' purchases or consumption. In determining such a clustereffect, the disclosed systems indirectly detect the impact a digitalmessage, post, digital video, or other digital-sharing activity has onconverting digital-content delivery into a purchase or other form ofdigital consumption.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description refers to the drawings briefly described below.

FIG. 1 illustrates a block diagram of an environment for implementing asocial networking system in accordance with one or more embodiments.

FIG. 2 illustrates a conceptual diagram of a cluster effect inaccordance with one or more embodiments.

FIGS. 3A-3B illustrate sequence-flow diagrams of determining a clustereffect representing the impact of users' exposure to digital content onother users' conversion actions in accordance with one or moreembodiments.

FIGS. 4, 5A, and 5B illustrate trial groups in accordance with one ormore embodiments.

FIG. 6 illustrates a user interface of a client device presenting aconversion report and target-cluster options in accordance with one ormore embodiments.

FIG. 7 illustrates a flowchart of a series of acts in a method ofdetermining a cluster effect of users' exposure to digital content onother users' conversion actions in accordance with one or moreembodiments.

FIG. 8 illustrates a block diagram of an example computing device inaccordance with one or more embodiments.

FIG. 9 illustrates a network environment of a networking systemaccording to one or more embodiments.

FIG. 10 illustrates an example social graph for a networking system inaccordance with one or more embodiments.

DETAILED DESCRIPTION

This disclosure describes a social networking system that determines acluster effect representing the impact that users' digital-contentexposure has on other users' conversion actions. The disclosed socialnetworking system detects downloads, purchases, or other forms ofconsumption of a featured item that result from users within the samecluster viewing digital content featuring the item. The socialnetworking system optionally applies the cluster effect by, for example,generating a conversion report representing the cluster effect or byproviding tools that exploit the cluster effect in distributing digitalcontent. Such tools optionally adjust the distribution of digitalcontent to users within target clusters based on the cluster effect.

In some embodiments, for instance, the social networking systemgenerates clusters of users, where each cluster has one or more users.The social networking system then separates the clusters of users intotwo groups—that is, a first group of clusters and a second group ofclusters. The social networking system subsequently determinesincremental lifts for different trial groups. For example, the socialnetworking system determines a first incremental lift between a firsttest group and a first control group, where each such group comprisesclusters of users from the first group of clusters. The socialnetworking system also determines a second incremental lift between asecond test group and a second control group, where each such groupcomprises individual users from the second group of clusters. Bycomparing the first incremental lift to the second incremental lift, thesocial networking system determines a cluster effect.

To generate clusters of users, the social networking system optionallyapplies a clustering algorithm to identify clusters based on commonattributes shared among users. The clustering algorithm may, forexample, identify clusters of users based on designated relationshipswithin the social networking system, commonly used Internet Protocoladdresses, common device identifiers, or some other common attributethat indicates a cluster. Such common attributes indicate to the socialnetworking system that certain users are part of a cluster, such as ahousehold, a group of classmates, or a group of coworkers.

The clusters may include differing numbers of users. In some cases, acluster includes multiple users that share common attributes. In othercases, a cluster includes a single user with whom the clusteringalgorithm has not grouped other users. Regardless of the number of usersin a cluster, the clustering algorithm optionally creates such clustersby assigning each user a cluster identifier. In some such embodiments,the social networking system uses both the cluster identifier and a useridentifier assigned to each user to sort users into groups. Accordingly,each user may have both a user identifier and a cluster identifier.Whereas users in the same cluster share a common cluster identifier,each user has a different user identifier.

After generating clusters of users, in some embodiments, the socialnetworking system creates trial groups to facilitate determiningincremental lift. In some cases, the incremental lift represents thedifference between (a) the consumption of a featured item by users towhom the social networking system delivered digital content (e.g., adigital advertisement) and (b) the consumption of the featured item byusers to whom the social networking system did not deliver the digitalcontent. Consumption by users who viewed the digital content representsa conversion action, that is, a consumption that results from or islinked to exposure to digital content.

To create the trial groups, the social networking system sorts usersinto two groups by clusters. For example, the social networking systemrandomly sorts clusters of users into a first group and a second groupfor analysis. As part of that analysis, the social networking systemsorts clusters from the first group into a first test group and a firstcontrol group. By contrast, the social networking system sorts users(not clusters) from the second group into a second test group and asecond control group. The social networking system then delivers digitalcontent to users in the test groups, but not to users in the controlgroups.

In some embodiments, the social networking system creates trial groupsby sorting users according to cluster identifiers or by useridentifiers. For example, in certain embodiments, the social networkingsystem sorts users according to their cluster identifiers to form thefirst group and the second group, as well as to form the first testgroup and the first control group. By contrast, the social networkingsystem optionally sorts users according to their user identifiers toform the second test group and the second control group.

As noted above, the social networking system uses the trial groups todetermine an incremental lift for both users sorted as clusters andusers sorted as users. The social networking system then compares theincremental lifts to determine a cluster effect. For example, the socialnetworking system may measure the incremental lift between the firsttest group and the first control group in terms of the percentage ofincremental buyers of a product in the first test group compared tobuyers of the product in the first control group. Similarly, the socialnetworking system may measure the incremental lift between the secondtest group and the second control group in terms of the percentage ofincremental buyers of a product in the second test group compared tobuyers of the product in the second control group. As explained below,the social networking system may use many other measures of incrementallift.

Regardless of the measure for incremental lift, the social networkingsystem uses incremental lifts to determine a cluster effect. Forexample, the social networking system determines a cluster effect as thedivergence between compared incremental lifts. That cluster effectrepresents the impact users with digital-content exposure have on otherusers in the same cluster. For example, the social networking system maydetermine a cluster effect as the difference between (a) the percentageof incremental buyers for the first test-and-control groups and (b) thepercentage of incremental buyers for the second test-and-control groups.Again, the social networking system may use several other measures todetermine a cluster effect, and the foregoing examples are merelyillustrative.

In addition to determining a cluster effect, in some embodiments, thedisclosed social networking system evaluates different clusteringalgorithms' capture of a cluster effect. As explained below, the socialnetworking system applies different clustering algorithms to users tocreate both clusters of users (from one clustering algorithm) andalternative clusters of users (from another clustering algorithm). Tocompare the different algorithms, the social networking system sortssuper clusters into trial groups, where the super clusters may includeoverlapping conglomerations of both clusters and alternative clusters.The social networking system then compares incremental lift attributedto clusters formed by the one clustering algorithm to incremental liftattributed to the alternative clusters formed by the other clusteringalgorithm. By performing this comparison, the social networking systemdetermines how different clustering algorithms capture a cluster effectand which clustering algorithms better represent clusters, such as byidentifying those algorithms that more accurately represent households,a group of coworkers, or a group of classmates.

Beyond determining a cluster effect and evaluating clusteringalgorithms, the disclosed social networking system also applies thedetermined cluster effect. For example, in some embodiments, the socialnetworking system generates a conversion report representing the clustereffect in various metrics. Additionally, or alternatively, the socialnetworking system provides target-cluster options that exploit thecluster effect in distributing digital content. Such tools optionallyadjust the distribution of digital content to users within targetclusters by location, demographic, institution, or some other variabledetected as part of the cluster effect.

As noted above, the disclosed social networking system overcomes thelimits of conventional conversion-tracking techniques. Pixel tracking,in-application tracking, and other conventional conversion-trackingtechniques do not track the connection between a user's out-of-networkconversation or digital-sharing event and another user's conversionaction. By determining an incremental lift for trial groups organized byeither clusters or by individual users, the disclosed social networkingsystem detects a cluster effect, such as differences in conversion thata digital-content delivery may have on multiple users within a cluster.In addition to detecting the cluster effect, the disclosed socialnetworking system exploits the effect by providing target-clusteroptions.

In addition to failing to detect a cluster effect, pixel tracking,in-application tracking, and other conventional conversion-trackingtechniques do not track the connection between digital content on asingle device, on the one hand, and another user's conversion action asa result of that digital content, on the other hand. By determining acluster effect representing the divergence between compared incrementallifts, the disclosed system detects the influence digital content on onedevice may have on multiple users in terms of conversion actions.Relatedly, by determining and applying the cluster effect, the socialnetworking system further detects and exploits the influence anin-person conversation or social-networking activity has on convertingdigital-content delivery into a purchase or other form of digitalconsumption.

Turning now to the figures, FIG. 1 illustrates a block diagram of oneembodiment of a system environment 100 in which a social networkingsystem 104 operates. As illustrated in FIG. 1, the system environment100 includes server device(s) 102, which include the social networkingsystem 104. The system environment 100 further includes client devices108 a, 108 b, through 108 n. As depicted in FIG. 1, each of the clientdevices 108 a-108 n have an associated user—with a user 112 a associatedwith the client device 108 a, a user 112 b associated with the clientdevice 108 b, and a user 112 n associated with the client device 108 n.The users 112 a-112 n may be humans, organizations, organizationmembers, or any other entities. Although FIG. 1 illustrates a particularnumber of client devices 108 a-108 n and a respective number ofassociated users 112 a-112 n, the system environment 100 may include anynumber of client devices and any number of users. Indeed, in someembodiments, the client device 108 a-108 n and the users 112 a-112 ncorrespond to thousands, millions, or billions of users.

As illustrated in FIG. 1, the client devices 108 a-108 n can communicatewith the server device(s) 102, including the social networking system104, over a network 106. This disclosure describes additional detailsrelated to the social networking system 104 below with reference toFIGS. 8-9. In addition, the network 106 may represent a network or acollection of networks, such as the Internet, a corporate intranet, alocal area network (“LAN”), or a combination of two or more suchnetworks. The network 106 may be any suitable network over which theclient devices 108 a-108 n (or other components) access the socialnetworking system 104 (or vice versa), as described further below withreference to FIG. 8.

As described below, the server device(s) 102 can enable the variousfunctions, features, processes, methods, and systems described hereinusing, for example, the social networking system 104. Additionally, oralternatively, the server device(s) 102 coordinate with the clientdevices 108 a-108 n to perform or provide the various functions,features, processes, methods, and systems described in more detailbelow. Although FIG. 1 illustrates a particular arrangement of theserver device(s) 102, social networking system 104, network 106, andclient devices 108 a-108 n, various additional arrangements arepossible. For example, the social networking system 104 and the serverdevice(s) 102 may directly communicate with the client devices 108 a-108n and thus bypass the network 106.

Generally, the client devices 108 a-108 n can include any one of varioustypes of client devices. For example, the client devices 108 a-108 n caninclude a mobile device (e.g., a smart phone), tablet, laptop computer,desktop computer, television, or any other type of computing device asfurther explained below with reference to FIG. 8. Additionally, theserver device(s) 102 can include one or more computing devices includingthose explained below with reference to FIG. 8. The server device(s)102, social networking system 104, network 106, and client devices 108a-108 n may communicate using any communication platforms andtechnologies suitable for transporting data and/or communicationsignals, including any known communication technologies, devices, media,and protocols supportive of data communications, examples of which aredescribed below with reference to FIG. 9.

As shown in FIG. 1, the server device(s) 102 provide the client devices108 a-108 n access to the social networking system 104 through thenetwork 106. In one or more embodiments, by accessing the socialnetworking system 104, the client devices 108 a-108 n send or receiveone or more digital content (e.g., posts, instant messages, comments) toor from the social networking system 104, including digitaladvertisements that feature a product. The social networking system 104can provide, for example, a website that enables one of the users 112a-112 n to receive, post, purchase, send, or perform other actions withrespect to digital content within the social networking system 104.

Alternatively, the client devices 108 a-108 n communicate with thesocial networking system 104 via a dedicated application on the clientdevices 108 a-108 n. In particular, and as further shown in FIG. 1, eachof the client devices 108 a-108 n has an associated social networkingapplication—with a social networking application 110 a associated withthe client device 108 a, a social networking application 110 bassociated with the client device 108 b, and a social networkingapplication 110 n associated with the client device 108 n. In someinstances, the social networking system 104 provides data packetscomprising the social networking applications 110 a-110 n to the clientdevices 108 a-108 n, respectively (e.g., by providing data to a mobiledevice that, when executed, creates a software application on the clientdevices 108 a-108 n).

In some embodiments, the social networking application 110 a, forinstance, comprises a web browser, applet, or other software application(e.g., a native application) available to the client device 108 a. Theclient device 108 a may launch the social networking application 110 ato facilitate interacting with the social networking system 104. Forexample, the social networking application 110 a may coordinatecommunications between the client device 108 a and the server device(s)102 that, for example, access webpages of the social networking system104 or send digital content within the system 104. To facilitate userinteraction with the social networking system 104, the social networkingapplication 110 a provides a graphical user interface of the socialnetworking system 104; receives indications of interactions of the user112 a with the graphical user interface; and performs various requests,queries, or responses to other user input. Although this paragraph usesthe social networking application 110 a as an example, the socialnetworking applications 110 b-110 n may comprise the same components andperform the same functions as those included and performed by the socialnetworking application 110 a.

As an overview of the social networking system 104, the system 104generates clusters to determine a cluster effect based on the actionsand interactions performed—and profile information entered—by the users112 a-112 n. For example, in some embodiments, the social networkingsystem 104 generates clusters of users as part of determining a clustereffect. As used in this disclosure, the term “cluster” refers to agrouping of one or more users of the social networking system 104. Insome instances, a cluster includes a single user, such as a single userwho lacks certain common attributes with other users as determined by aclustering algorithm. As shown in FIG. 1, for example, a dotted boxsurrounding the user 112 n indicates that the user 112 n is a singleuser within a cluster. In some instances, however, a cluster includesmultiple users having one or more common attributes. As shown in FIG. 1,for example, a dotted box surrounding the users 112 a and 112 bindicates that the users 112 a and 112 b are part of a cluster.

Common attributes may include, but are not limited to, an affinitycoefficient, a designated relationship, a commonly used InternetProtocol (“IP”) address, a common physical address, a common deviceidentifier, tagged users within one or more shared images, a commonemployer, or a common educational institution. Such information may beentered as profile information for one or more of the users 112 a-112 n.Accordingly, and by way of example, a cluster may include a group ofalumni from the same educational institution, classmates from the sameclass or educational institution, club members from the same club,coworkers who share a same employer or joint venture, social-networkfriends who are associated by affinity coefficient, household memberswho are part of a household or live at a same location, or neighbors wholive within proximity of each other (e.g., with physical addresses onthe same street or same neighborhood).

The term “cluster effect” refers to the impact that one or more users'exposure to digital content has on conversion actions by other users inthe same cluster. The term “conversion action” in turn refers to atargeted action a user performs in response to digital content. Thetargeted action may come in response to a digital advertisement orproduct placement within digital content. For example, a cluster effectincludes the purchase or consumption of a product by a first householdmember as a consequence of the first household member showing a secondhousehold member a digital advertisement.

Alternatively, the first household member may have sent a direct messageto the second user, posted or streamed a digital video that the seconduser viewed, spoken to the second user, or performed some other activitythat prompted the second user to purchase or consume the product.

As used in this disclosure, a cluster effect includes various forms ofconversion actions, including, but not limited to, downloading asoftware application, viewing digital content, voting in an election(e.g., for a particular candidate), purchasing a product, or subscribingto a service (e.g., subscribing to access digital content, download apodcast, or receive a food basket). Accordingly, a cluster effectaccounts for a conversion action by a first cluster member as aconsequence of showing or otherwise sharing with a second cluster memberdigital content intended to promote the conversion action.

To determine such a cluster effect, the social networking system 104creates various groups based on clusters of the users 112 a-112 n. Forexample, the social networking system 104 sorts clusters of the users112 a-112 n into a first group and a second group. The social networkingsystem 104 then sorts clusters from the first group into a first testgroup and a first control group. By contrast, the social networkingsystem 104 sorts users from the second group into a second test groupand a second control group. In other words, the social networking system104 sorts users from the first group by cluster and users from thesecond group by user.

As used in this disclosure, the term “test group” refers to a group ofusers who receive certain digital content from the social networkingsystem 104. In other words, the digital content serves as the variablethat the social networking system 104 tests. For example, the socialnetworking system 104 may add a digital advertisement into a newsfeedviewed by users in a test group.

In contrast to a test group, the term “control group” refers to a groupof users who do not receive certain digital content or at least do notreceive certain digital content from the social networking system 104.In other words, users in a control group serve as a benchmark againstwhich the effectiveness of digital content is measured by the socialnetworking system 104. Relatedly, the term “trial group” refers to agroup separated from a sample of users. A trial group includes, but isnot limited to, a first group, second group, first test group, firstcontrol group, second test group, or second control group.

Continuing the overview, after creating the test groups and controlgroups, the social networking system 104 determines an incremental liftbetween respective test and control groups. As used in this disclosure,the term “incremental lift” refers to the difference between theconsumption or purchase by a test group of a featured item and theconsumption or purchase by a control group of the featured item. Forexample, in some embodiments, an incremental lift represents thedifference between (a) downloads by a test group of an advertisedsoftware application and (b) downloads by a control group of anadvertised software application. As explained below in connection withFIG. 3A, the social networking system 104 measures incremental lift in avariety of forms.

Regardless of the form of measurement, the social networking system 104compares incremental lifts to determine a cluster effect. For example,the social networking system 104 may compare (1) a first incrementallift between a first test group and a first control group to (2) asecond incremental lift between a second test group and a second controlgroup to determine a cluster effect. In some such embodiments, thecluster effect represents the divergence between the first incrementallift and the second incremental lift. In one such measurement, thesocial networking system 104 determines a cluster effect measured interms of a percentage representing an incremental number of users whoconsumed or purchased an item as shown in the first incremental liftabove or below the second incremental lift.

Turning now to FIG. 2, this figure illustrates a conceptual diagram of acluster effect. As shown in FIG. 2, this particular cluster effectrepresents the impact that certain users' exposure to a digitaladvertisement has on other users within the same clusters as measured inconversion actions. Specifically, the cluster effect depicted in FIG. 2represents the additional purchases of an advertised product by someusers that result from certain other users' exposure to a digitaladvertisement.

As shown in FIG. 2, the social networking system 104 groups users 204a-204 r into clusters 202 a-202 h. The clusters 202 a, 202 b, 202 f, 202g, and 202 h each include multiple users. In particular, the cluster 202a includes the users 204 a, 204 b, and 204 c; the cluster 202 b includesthe users 204 d and 204 e; the cluster 202 f includes the users 204 iand 204 j; the cluster 202 g includes the users 204 k, 204 l, 204 m, and204 n; and the cluster 202 h includes the users 204 o, 204 p, 204 q, and2044. By contrast, the clusters 202 c, 202 d, and 202 e each include asingle user. In particular, the clusters 202 c, 202 d, and 202 erespectively include the users 204 f, 204 g, and 204 h.

For illustrative purposes, the clusters 202 a-202 h represent differenthouseholds. Accordingly, the clusters 202 a-202 h represent an estimateby the social networking system 104 of which users form a household.Other forms of clusters could be used as well to demonstrate clusters,such as social-network friends, neighbors, or organizational members.

As further shown in FIG. 2, the social networking system 104 deliversdigital advertisements 206 a, 206 b, 206 c, 206 d, 206 e, 206 f, 206 g,and 206 h to the users 204 b, 204 d, 204 e, 204 f, 204 g, 204 h, 204 jand 204 o, respectively. The digital advertisements 206 a-206 hrepresent different instances of the same digital advertisement thatadvertises a product. The social networking system 104 delivers thedigital advertisements 206 a-206 h as a post within a newsfeed to clientdevices associated with the users 204 b, 204 d, 204 e, 204 f, 204 g, 204h, 204 j and 204 o. The digital advertisements 206 a-206 h may or maynot prompt a user to purchase the advertised product. For example, thedigital advertisements 206 b and 206 g prompt the users 204 d and 204 hto respectively make purchases 208 b and 208 d of the advertisedproduct. By contrast, the digital advertisements 206 d, 206 e, and 206 fdo not prompt the users 204 f, 204 g, and 204 j to make purchases of theadvertised product.

Other purchases in FIG. 2 illustrate the cluster effect. The digitaladvertisements 206 a and 206 h indirectly prompt the users 204 c and 204r to make purchases 208 a and 208 e of the advertised product. Asillustrated in FIG. 2, the social networking system 104 delivers thedigital advertisements 206 a and 206 h to the users 204 b and 204 o. Theusers 204 b and 204 o in turn perform some activity—such as speakingwith a household member, sending a direct message, or posting orstreaming a digital video—that prompts the users 204 c and 204 r to makethe purchases 208 a and 208 e.

As further shown in FIG. 2, the purchases 208 a and 208 e are the resultof a cluster effect. In particular, the purchases 208 a and 208 erepresent incremental purchases that one cluster member's exposure todigital content prompted another cluster member to make. As noted above,conventional conversion-tracking techniques cannot detect such a clustereffect. But the disclosed social networking system 104 performs aninnovative technique for detecting such a cluster effect.

Turning now to FIGS. 3A and 3B, these figures provide an overview ofembodiments of the social networking system 104 that determine a clustereffect representing the impact of users' exposure to digital content onother users' conversion actions. Specifically, FIG. 3A illustrates asequence of acts 302-326 that the social networking system 104 performsto determine and apply a cluster effect, such as identifying a sample ofusers, applying a clustering algorithm, determining a cluster effect,and generating cluster effect tools. FIG. 3B illustrates a sequence ofacts 328-354 that the social networking system 104 performs to comparedifferent clustering algorithms, such as identifying a sample of users,generating super clusters of users, and determining a cluster-effectdifferential.

Various components of the system environment 100 perform the acts302-326 shown in FIG. 3A or the acts 328-354 shown in FIG. 3B. In someembodiments, for example, the social networking system 104 comprisescomputer-executable instructions that cause the server device(s) 102 toperform one or more of the acts 302-326 or the acts 328-354. Rather thanrepeatedly describe the instructions within the social networking system104 as causing the server device(s) 102 to perform certain acts, thisdisclosure primarily describes the social networking system 104 asperforming the acts 302-326 or the acts 328-354 as a shorthand for thoserelationships.

Turning back now to FIG. 3A, as shown, the social networking system 104performs the act of identifying a sample of users. The social networkingsystem 104 selects a sample of users using a variety of methods. In someembodiments, the social networking system 104 randomly identifies usersuntil it has identified a statistically significant number of users tocreate multiple test-and-control groups. Additionally, or alternatively,the social networking system 104 identifiers users from within thesocial networking system 104 that comprise a representative sample of atarget population (e.g., a representative demographic of a population ina target location).

When identifying a sample of users, the social networking system 104optionally uses a target variance as a benchmark for identifying anadequate number of users to estimate a cluster effect. Additionally, oralternatively, the social networking system 104 optionally uses aconfidence level to estimate the accuracy of results derived from thesample of users. Regardless of whether a target variance or confidencelevel is used, the social networking system 104 may use any well-knownstatistical sample equation to identify a sample of users within thesystem 104, such as equations for estimation of a proportion, estimationof a mean, and stratified sample size.

In addition to identifying a sample of users, the social networkingsystem 104 performs the act 304 of identifying common attributes fromamong the sample. The social networking system 104 identifies thesecommon attributes from actions taken and information entered in thesocial networking system 104 by the users 112 a-112 n. For example, insome embodiments, the social networking system 104 identifies one ormore of designated relationships, common physical addresses, commonemployers, and/or common educational institutions in profile informationassociated with the sample of users. Additionally, or alternatively, thesocial networking system 104 identifies an IP address or deviceidentifier used by two or more of users from the sample to access thesocial networking system 104. The social networking system 104 alsooptionally identifies images, posts, or comments in which two or more ofthe users from the sample have been tagged or identifies groups whichtwo or more of the users from the sample have joined.

In some embodiments, the social networking system 104 determines anaffinity coefficient for some (or all) of the in the sample relative toeach other as part of identifying common attributes. The socialnetworking system 104 determines the affinity coefficient based on asocial graph. In some embodiments, the affinity coefficient represents astrength of a relationship between a first user and a second user (e.g.,users 112 a and 112 b). The affinity coefficient may also represent aprobability or function that measures a probability that a first userand a second user are part of a same cluster (e.g., a group ofsocial-network friends). In other words, the affinity coefficient mayrepresent a strength of relationship between a user and a proposedcluster.

In some embodiments, the social networking system 104 generates orutilizes an affinity coefficient by quantifying an affinity between afirst user and a second user-both of whom are represented as objectswithin a social graph. Specifically, within the social graph, the socialnetworking system 104 represents each of the users 112 a and 112 b as anode. The social networking system 104 likewise represents various otherusers and objects associated with the users 112 a and 112 b as nodeswithin the social graph and connections among the user nodes and objectnodes as edges within the social graph. The social graph may representany of the common attributes noted above as a node. By using these nodesand edges, the social networking system 104 generates an affinitycoefficient for any two users or between any user and a proposedcluster. As explained below, the social networking system 104 may groupusers within a cluster when they have an affinity coefficient above athreshold. This disclosure describes affinity coefficients in moredetail with reference to FIG. 10 below.

As further shown in FIG. 3A, the social networking system 104 performsthe act 306 of applying a clustering algorithm to users of the socialnetworking system 104 to generate clusters of users. In someembodiments, the social networking system 104 applies the clusteringalgorithm to the sample of users identified as part of the act 302. Bycontrast, in some embodiments, the social networking system 104 appliesthe clustering algorithm as part of identifying the sample of users. Insome such embodiments, the social networking system 104 applies theclustering algorithm to generate clusters to ensure that the sample ofusers does not split up users who are part of a same cluster—within orwithout the sample of users. To illustrate this relationship betweenidentifying a sample of users and applying a clustering algorithm, FIG.3A includes a dotted arrow from the act 306 to the act 302.

When generating the clusters of users, the social networking system 104may apply a variety of clustering algorithms. For example, in someembodiments, the social networking system 104 applies anaffinity-propagation algorithm, a centroid-based clustering algorithm, adistribution-based clustering algorithm, or a density-based clusteringalgorithm. In particular, in some embodiments, the social networkingsystem 104 applies any one of the methods or algorithms described byJure Leskovec, Anand Rajaraman, and Jeffrey David Ullman, Ch. 10,“Mining Social-Network Graphs” in Mining of Massive Datasets 325-383(2014) (hereinafter “Leskovec”), which is incorporated by reference inits entirety. In some such embodiments, the social networking system 104uses a clustering algorithm that includes hash functions. For example,the social networking system 104 optionally applies MapReduce or theFlajolet-Martin technique when generating clusters of users, asdescribed in Leskovec.

Additionally, or alternatively, in some embodiments, the socialnetworking system 104 applies the clustering algorithm described by NinaMishra, Robert Schreiber, Isabelle Stanton, and Robert E. Tarjan,“Finding Strongly Knit Clusters in Social Networks,” InternetMathematics Vol. 5, No. 1-2: 153-172 (2009) (hereinafter “Mishra”),which is incorporated by reference in its entirety. Whether applyingMishra's clustering algorithm or some other clustering algorithm, thesocial networking system 104 optionally uses affinity coefficients aspart of the clustering algorithm to generate clusters of users. In somesuch embodiments, the social networking system 104 determines anaffinity coefficient for a user relative to a proposed cluster. Forexample, in some embodiments, the social networking system 104 proposesa set of possible clusters based on common attributes detected withinthe social networking system 104. The social networking system 104groups users into clusters based on an overall affinity coefficientamong users (from a sample of users) to generate clusters of users. Inone implementation, the social networking system 104 uses affinities asdescribed in Mishra.

Regardless of the clustering algorithm, in some embodiments, the socialnetworking system 104 generates clusters by assigning each user acluster identifier. In other words, the social networking system 104assigns a cluster identifier to each user representing the cluster inwhich the clustering algorithm determines the user belongs. The term“cluster identifier” refers to a code, combination, number, or otheridentifier for a particular cluster. A cluster identifier differs from auser identifier. The term “user identifier” refers to a code,combination, number, or other identifier for a particular user. Asexplained below, the social networking system 104 optionally uses bothcluster identifiers and user identifiers to sort users into groups. Insome embodiments, the social networking system 104 assigns each of theusers 112 a-112 n a user identifier (e.g., assigning each user a uniqueuser identifier upon opening an account in the social networking system104). Accordingly, after applying a clustering algorithm, each user mayhave both a user identifier and a cluster identifier. FIGS. 4A and 4Bprovide examples of cluster identifiers and user identifiers.

As further shown in FIG. 3A, after applying a clustering algorithm, thesocial networking system 104 performs the act 308 of assigning clustersof users to a first group and the act 310 of assigning clusters of usersto a second group. For example, in some embodiments, the socialnetworking system 104 randomly assigns clusters to the first group andthe second group of clusters. To make that random assignment, the socialnetworking system 104 optionally uses cluster identifiers to randomlysort the clusters of users into the first group or the second group.Accordingly, the social networking system 104 may randomly assignclusters of users to groups according to cluster identifiers.

Alternatively, in some embodiments, the social networking system 104divides the clusters of users into the first and the second groups. Forexample, the social networking system 104 may divide the clusters ofusers such that a certain portion of the clusters are in the first groupand a certain portion of the clusters are in the second group (e.g.,evenly dividing the clusters of users into the first and second groups).

After sorting the clusters of users into the first and second groups,the social networking system 104 further sorts the users from each ofthe first and second groups into test-and-control groups. As shown inFIG. 3A, for instance, the social networking system 104 performs the act312 of assigning some clusters to a first test group and the act 314 ofassigning some clusters to a first control group. For example, thesocial networking system 104 may randomly assign particular clustersfrom the first group to the first test group or to the first controlgroup according to cluster identifiers. In other words, the socialnetworking system 104 randomly sorts the cluster identifiers assigned toeach user having the same cluster identifier into either the first testgroup or the first control group. By sorting users according to clusteridentifier, the social networking system 104 ensures that it does notsplit up users within a same cluster into a different group.Accordingly, when performing the acts 312 and 314, the social networkingsystem 104 avoids splitting one cluster member in a test group andanother cluster member in a control group (or vice versa).

Alternatively, the social networking system 104 divides the clustersfrom the first group into a certain portion of clusters for the firsttest group and a certain portion of clusters for the first controlgroup. For example, the social networking system 104 may divide theclusters from the first group evenly into the first test group and thefirst control group. Similarly, the social networking system 104 maydivide the clusters from the first group into some other predeterminedportions (e.g., two thirds in the first test group and one third in thesecond test group).

As further shown in FIG. 3A, the social networking system 104 performsthe act 316 of assigning some users to a second test group and the act318 of assigning some users to a second control group. For example, thesocial networking system 104 may randomly assign users from the secondgroup to the second test group or to the second control group accordingto user identifiers. In other words, the social networking system 104randomly sorts the user identifiers assigned to each user into eitherthe second test group or the second control group. By sorting usersaccording to user identifier, the social networking system 104potentially splits users belonging to a same cluster into differentgroups (e.g., by splitting one cluster member in a test group andanother cluster member in a control group).

Alternatively, the social networking system 104 divides the users fromthe second group into a certain portion of users for the second testgroup and a certain portion of users for the second control group. Forexample, the social networking system 104 may divide the users from thesecond group evenly into the second test group and the second controlgroup or, alternatively, into some other predetermined portions.

After sorting users into test-and-control groups, the social networkingsystem 104 performs the act 320 of determining a first incremental liftand the act 322 of determining a second incremental lift. As suggestedabove, the social networking system 104 delivers digital content to thefirst test group and to the second test group, but not to the firstcontrol group and not to the second control group. After deliveringdigital content to the test groups, the social networking system 104determines which users within each of the test-and-control groupsperformed a conversion action, such as by downloading an advertisedsoftware application, purchasing an advertised product, streamingadvertised digital content, or performing some other conversion action.This determination enables the social networking system 104 to in turndetermine an incremental lift.

The social networking system 104 uses a variety of tools to determinewhich users performed a conversion action. For example, in someembodiments, the social networking system 104 generates a uniqueaudience pixel for a website to securely track a user who visits awebsite and also visits webpages of the social networking system 104. Insome such embodiments, the social networking system 104 generates theunique audience pixel for a website administrator to add to the headercode of a particular webpage for subsequent tracking. Additionally, oralternatively, the social networking system 104 generates a conversionpixel for addition to the HTML of a target webpage. For example thesocial networking system 104 generates a snippet of code for adding tothe HTML of a purchase-confirmation webpage for an advertised item or astreaming-webpage for an advertised video.

When a conversion action occurs, the conversion pixel sends a signal tothe social networking system 104 indicating that the conversion actionhas occurred.

Additionally, in some embodiments, the social networking system 104receives point-of-sale or point-of-transaction data from a third partywho advertised a particular product to determine which users performed aconversion action. For example, the social networking system 104optionally receives information from the third party concerning peoplewho downloaded a software application, viewed digital content, purchaseda product, subscribed to a service, or performed some other conversionaction. The social networking system 104 then matches the informationconcerning people who performed a conversion action with profile orother information for users within the test-and-control groups.

While this disclosure describes audience pixels, conversion pixels, andpoint-of-transaction data, the social networking system 104 maydetermine which users performed conversion actions using any suitablemethod. Regardless of the method used, the social networking system 104gathers information concerning the conversion actions. For example, thesocial networking system 104 gathers one or more of an amount spent by auser from the sample for an individual conversion action, a number ofusers from the sample who performed a conversion action, a total amountspent for conversion actions performed by users within the sample, and atotal number of conversion actions performed by users within the sample.Additionally, the social networking system 104 optionally gathers suchdata and quantifies the data for each test and control group.

Using data concerning users' conversion actions, the social networkingsystem 104 determines a first incremental lift between users in thefirst test group and the first control group. Similarly, the socialnetworking system 104 determines a second incremental lift between usersin the second test group and the second control group. The socialnetworking system 104 determines incremental lift in a variety ofmeasurements.

For example, in some instances, the social networking system 104determines incremental lift in terms of (a) an incremental amount spentper user in a test group above or below the same measurement type in acontrol group, (b) a percentage representing an incremental amount spentper user in a test group above or below the same measurement type in acontrol group, (c) an incremental number of users who consumed orpurchased an item in a test group above or below the same measurementtype in a control group, (d) a percentage representing an incrementalnumber of users who consumed or purchased an item in a test group aboveor below the same measurement type in a control group, (e) anincremental amount of sales generated by a test group above or below thesame measurement type in a control group, and (f) a percentagerepresenting an incremental amount of sales generated by a test groupabove or below the same measurement type in a control group. Forsimplicity, this disclosure refers to the foregoing measurements as (a)incremental-spend-amount lift, (b) average-spend lift, (c)incremental-consumption lift, (d) conversion lift, (e) incremental-saleslift, and (f) total-sales lift. FIG. 6 below provides an example ofincremental lift determined in measurements (a) through (f). While thisdisclosure describes and refers to incremental lift in terms ofmeasurements (a) through (f), the social networking system 104additionally or alternatively determines incremental lift in othermeasurements (e.g., an incremental number of users who voted in anelection or for a particular candidate, an incremental number ofsubscriptions for a service).

As further shown in FIG. 3A, after determining first and secondincremental lifts, the social networking system 104 performs the act 324of determining a cluster effect. To determine the cluster effect, thesocial networking system 104 compares the first incremental lift to thesecond incremental lift. In some embodiments, the social networkingsystem 104 determines the cluster effect by determining a divergencebetween the first incremental lift and the second incremental lift.

Because the first incremental lift captures incremental lift betweentest-and-control groups separated by clusters, the first incrementallift includes incremental consumption or purchase caused by a clustereffect. Conversely, because the second incremental lift capturesincremental lift between test-and-control groups separated by users, thesecond incremental lift does not include incremental consumption orpurchase caused by a cluster effect. Accordingly, by comparing the firstincremental lift to the second incremental lift, the social networkingsystem 104 determines a measurement of the cluster effect.

For example, in some embodiments, the social networking system 104determines a cluster effect measured in terms of conversion liftsrepresented by the first incremental lift and the second incrementallift. By comparing the two conversion lifts, the social networkingsystem 104 determines a percentage representing an incremental number ofusers who consumed or purchased an item as shown in the firstincremental lift above or below the second incremental lift. While thisexample highlights conversion lift, the social networking system 104 mayuse incremental lifts in any of the measurements (a) through (f)—orother suitable measurements—to determine a cluster effect. As describedbelow, FIG. 6 provides additional examples.

As further shown in FIG. 3A, after determining a cluster effect, thesocial networking system 104 performs the act 326 of generating clustereffect tools. As suggested above, in some embodiments, the socialnetworking system 104 provides cluster effect tools as one or both ofconversion reports and target-cluster options. For example, the socialnetworking system 104 generates a conversion report that includes arepresentation of the cluster effect and/or target-cluster options.After generation, the social networking system 104 provides theconversion report to a client device for presentation within a graphicaluser interface.

The conversion report may represent the cluster effect in terms ofcomparison of any of the measurements (a) through (f). Additionally, theconversion report optionally represents the cluster effect in morespecific portions of a cluster. For instance, the conversion report mayinclude a cluster effect for a particular age group, gender, location,relationship status, region, religion, or other demographic.Additionally, or alternatively, the conversion report may include acluster effect for a particular time frame (e.g., time intervals betweenexposure to digital content and a corresponding conversion action).

Similarly, in some embodiments, the target-cluster options includeselectable options that (upon selection) adjust the distribution ofdigital content to users within particular clusters. For example, thesocial networking system 104 may provide target-cluster options thatincrease or decrease the distribution of digital content to users withinparticular clusters, such as a video or digital advertisement. Thesocial networking system 104 may, for instance, increase or decrease thedistribution of digital content to users within clusters comprisingmultiple users or to users within clusters of a particular age group,gender, location, relationship status, region, religion, or otherdemographic. Accordingly, in some cases, the target-cluster optionsprovide options to exploit information provided in the conversionreport.

In addition to determining a cluster effect, in certain embodiments, thesocial networking system 104 compares different clustering algorithms todetermine which clustering algorithm better or more accurately capturesa cluster effect. In some cases, the social networking system 104compares different clustering algorithms to determine which clusteringalgorithm generates clusters that reflect real-world clusters moreaccurately than the other clustering algorithm. Additionally, oralternatively, the social networking system 104 determines which of twoor more clustering algorithms captures an increased cluster effect—thatis, the clustering algorithm that captures a larger or more pronouncedcluster effect. This disclosure describes some embodiments that compareclustering algorithms below with reference to FIG. 3B. But the socialnetworking system 104 sometimes runs different iterations of the acts302-326 to compare clustering algorithms.

In some embodiments, for instance, the social networking system 104 runsone iteration of the acts 302-326 with a first clustering algorithm andanother iteration of the acts 302-326 with a second clusteringalgorithm. The social networking system 104 then compares the clustereffect determined in each iteration. In making that comparison, thesocial networking system 104 can make various determinations. The socialnetworking system 104 may determine which of the clustering algorithmscaptures a larger cluster effect. Alternatively, by running severaliterations with two different clustering algorithms, the socialnetworking system 104 may determine which of the clustering algorithmscaptures a more consistent cluster effect (e.g., a cluster effect withina threshold range or statistically significant range). The socialnetworking system 104 may similarly run iterations of the acts 302-326with a different clustering algorithm in each iteration or differentclustering algorithms in multiple iterations (e.g., three or fourclustering algorithms with several iterations each).

As an illustrative example, in one or more embodiments, the socialnetworking system 104 applies an alternative clustering algorithm togenerate alternative clusters of users, where each alternative clusterhas one or more users. This alternative clustering algorithm is adifferent clustering algorithm than the social networking system 104used in an initial iteration or in several prior iterations. The socialnetworking system 104 then separates the alternative clusters of usersinto two groups—that is, an alternative first group of clusters and analternative second group of clusters.

The social networking system 104 subsequently determines incrementallifts for different trial groups. For example, the social networkingsystem 104 determines an alternative first incremental lift between analternative first test group and an alternative first control group,where each such group comprises alternative clusters of users from thefirst group of clusters. The social networking system 104 alsodetermines an alternative second incremental lift between an alternativesecond test group and an alternative second control group, where eachsuch group comprises individual users from the alternative second groupof clusters. By comparing the alternative first incremental lift to thealternative second incremental lift, the social networking system 104determines an alternative cluster effect. Based on a comparison of acluster effect determined using an initial clustering algorithm and thealternative cluster effect determine using the alternative clusteringalgorithm, the social networking system 104 identifies either theinitial clustering algorithm or the alternative clustering algorithm asgenerating clusters that capture a larger cluster effect.

Turning back now to FIG. 3B, this figure illustrates a representation ofa sequence of acts 328-354 that the social networking system 104performs in addition (or in the alternative) to the acts 302-326 shownin FIG. 3A. As additional or alternative acts, FIG. 3B illustrates thesocial networking system 104 comparing different clustering algorithms'capture of a cluster effect. By performing this comparison, the socialnetworking system 104 determines how different clustering algorithmscapture a cluster effect and which clustering algorithms betterrepresent clusters.

As shown in FIG. 3B, the social networking system 104 performs the act328 of identifying a sample of users and the act 330 of identifyingcommon attributes. As suggested by their descriptions in the figures,the acts 328 and 330 in FIG. 3B respectively correspond to the acts 302and 304 in FIG. 3A. Accordingly, the description and embodiments setforth above for the acts 302 and 304 respectively apply to the acts 328and 330—except that the latter acts involve optionally involve applyingdifferent clustering algorithms as part of identifying a sample ofusers.

As further shown in FIG. 3B, the social networking system 104 performsthe act 332 of applying a first clustering algorithm to users togenerate clusters of users and the act 334 of applying a secondclustering algorithm to users to generate alternative clusters of users.For purposes of comparison, the social networking system 104 applies thefirst and second clustering algorithms to the same group of users. Insome embodiments, the social networking system 104 applies the first andsecond clustering algorithms to the sample of users identified as partof the act 328. By contrast, in some embodiments, the social networkingsystem 104 applies the first and second clustering algorithms as part ofidentifying the sample of users. To illustrate this relationship betweenidentifying a sample of users and applying the different clusteringalgorithms, FIG. 3B includes dotted arrows from the act 332 to the act328 and from the act 332 to the act 328.

When applying the first and second clustering algorithms, the socialnetworking system 104 applies different clustering algorithms. Forexample, the social networking system 104 optionally applies aclustering algorithm described in Leskovec and a clustering algorithmdescribed in Mishra. Alternatively, the social networking system 104optionally applies two different clustering algorithms described inLeskovec. As suggested above, the social networking system 104 may alsoapply any two different clustering algorithms suitable for a socialnetwork or social graph. Regardless of the clustering algorithm, in someembodiments, the social networking system 104 generates clusters byassigning each user a cluster identifier corresponding to the clustersgenerated by the first clustering algorithm and an alternative clusteridentifier corresponding to the alternative cluster generated by thesecond clustering algorithm.

As the first and second clustering algorithms differ from one another,the first and second clustering algorithms presumably generate differentclusters of algorithms. Accordingly, this disclosure describes thesecond clustering algorithm as generating alternative clusters ofusers—as in alternatives to the clusters of users generated by the firstclustering algorithm. But in some cases, the first and second clusteringalgorithms may generate some clusters of users (or theoretically allclusters of users) that have the same constituent users. In other words,the first and second clustering algorithms may agree on the constituentusers who are part of a cluster.

In many embodiments, however, some or all of the clusters of usersgenerated by the first clustering algorithm differ from the alternativeclusters of users. Despite those differences, the first clusteringalgorithm may generate one or more clusters of users comprising someusers that overlap (or are also part of) an alternative cluster ofusers. In other words, the first and second clustering algorithms maygenerate overlapping clusters.

For example, the first clustering algorithm may generate the cluster 202h (shown in FIG. 2) comprising the users 204 o, 204 p, 204 q, and 204 r.But the second clustering algorithm may generate an alternative clusterthat comprises the users 204 i and 204 j—and the user 204 p.Accordingly, the cluster 202 h and the alternative cluster would bothinclude the user 204 p, but otherwise include different users. Asanother example, the second clustering algorithm may generate analternative cluster that comprises the users 204 o, 204 p, 204 q, and204 r—and the user 204 i. Accordingly, in this example, the alternativecluster would subsume the users within the cluster 202 h and include anadditional user, that is, the user 204 i. FIGS. 5A and 5B below includeadditional examples of clusters and alternative clusters.

As further shown in FIG. 3B, after applying the first and secondclustering algorithms, the social networking system 104 performs the act336 of generating super clusters of users. As used in this disclosure,the term “super cluster” refers to a group of one or more clusters andone or more alternative clusters. Whereas the first clustering algorithmgenerates the one or more clusters, the second clustering algorithmgenerates the one or more alternative clusters. The social networkingsystem 104 creates super clusters for later sorting clusters into trialgroups without splitting a cluster and an alternative cluster that sharean overlapping user. The super cluster helps ensure that a conversionaction is attributed to a cluster effect based on either a cluster or analternative cluster.

A super cluster may include, for example, both (a) the cluster 202 hcomprising the users 204 o, 204 p, 204 q, and 204 r and (b) analternative cluster comprising the users 204 i, 204 j, and 204 p. Inthis example, the social networking system 104 groups the cluster 202 hand the alternative cluster into a super cluster because both clustersshare an overlapping user, that is, the user 204 p. A super cluster mayalso include multiple clusters and/or multiple alternative clusters. Forexample, a super cluster may include (a) the cluster 202 h comprisingthe users 204 o, 204 p, 204 q, and 204 r; (b) an alternative clustercomprising the users 204 i, 204 j, and 204 p; and (c) an additionalalternative cluster comprising the users 204 h and 204 o. As above, thesocial networking system 104 groups the cluster 202 h and the twoalternative clusters into a super cluster to ensure that the sortingprocess does not split a cluster.

Depending on the number and position overlapping users, the socialnetworking system 104 may include several other possible super clusterswith multiple clusters from a first clustering algorithm and multiplealternative clusters from a second clustering algorithm. By contrast, insome instance, a super cluster may include a cluster and an alternativecluster that perfectly overlap, that is, a cluster and an alternativecluster that each comprise the same users. FIGS. 5A and 5B includesadditional examples of super clusters.

When generating super clusters, in some embodiments, the socialnetworking system 104 creates super clusters that clusters andalternative clusters that share one or more overlapping users are notseparated. In some cases, the social networking system 104 generatessuper clusters by assigning a super-cluster identifier to each userwithin a sample of users. In other words, the social networking system104 assigns a super-cluster identifier to each user representing thesuper cluster in which the social networking system 104 determines theuser belongs. The term “super-cluster identifier” refers to a code,combination, number, or other identifier for a particular super cluster.

As further shown in FIG. 3B, after generating super clusters, the socialnetworking system 104 performs the act 338 of assigning super clustersto a first group and the act 340 of assigning super clusters to a secondgroup. For example, in some embodiments, the social networking system104 randomly assigns super clusters to the first group and the secondgroup. To make that random assignment, the social networking system 104optionally uses super-cluster identifiers to randomly sort the superclusters of users into the first group or the second group. Accordingly,the social networking system 104 may randomly assign super clustersbased on super-cluster identifiers.

Alternatively, in some embodiments, the social networking system 104divides the super clusters into the first and the second groups. Forexample, the social networking system 104 may divide the super clusterssuch that a certain portion of the super clusters are in the first groupand a certain portion of the super clusters are in the second group(e.g., evenly dividing the super clusters into the first and secondgroups).

After sorting the super clusters into the first and second groups, thesocial networking system 104 further sorts the super clusters from eachof the first and second groups into test-and-control groups. As shown inFIG. 3B, for instance, the social networking system 104 performs the act342 of assigning some super clusters to a first test group and the act344 of assigning some super clusters to a first control group. Forexample, the social networking system 104 may randomly assign superclusters from the first group to the first test group or to the firstcontrol group according to super-cluster identifiers. In other words,the social networking system 104 randomly sorts the super-clusteridentifiers assigned to each user having the same super-clusteridentifier into either the first test group or the first control group.By sorting super clusters by super-cluster identifier, the socialnetworking system 104 ensures that it does not split up into differentgroups clusters and alternative clusters that share overlapping users.

Alternatively, the social networking system 104 divides the superclusters from the first group into a certain portion of super clustersfor the first test group and a certain portion of super clusters for thefirst control group. For example, the social networking system 104 maydivide the super clusters from the first group evenly into the firsttest group and the first control group. Similarly, the social networkingsystem 104 may divide the super clusters from the first group into someother predetermined portions (e.g., two thirds in the first test groupand one third in the second test group).

As further shown in FIG. 3B, the social networking system 104 performsthe act 346 of assigning some super clusters to a second test group andthe act 348 of assigning some super clusters to a second control group.As suggested by their descriptions in the figures, the acts 346 and 348in FIG. 3B are respectively similar to the acts 328 and 330 in FIG. 3B.Accordingly, the description and embodiments set forth above for theacts 328 and 330 respectively apply to the acts 346 and 348—except thatthe latter acts involve sorting super clusters from the second groupinto a second test group and a second control group.

After sorting super clusters into test-and-control groups, the socialnetworking system 104 performs the act 350 of determining a firstincremental lift and the act 352 of determining a second incrementallift. As suggested by their descriptions in the figures, the acts 350and 352 in FIG. 3B are respectively similar to the acts 320 and 322 inFIG. 3A. Accordingly, the description and embodiments set forth abovefor the acts 320 and 322 respectively apply to the acts 350 and 352 withsome exceptions. In contrast to the former acts, both the acts 350 and352 involve determining that the latter acts involve sorting superclusters from the second group into a second test group and a secondcontrol group.

Additionally, both the first incremental lift and the second incrementallift shown in FIG. 3B reflect a cluster effect. Because both the firstincremental lift and the second incremental lift capture incrementallift between test-and-control groups separated by super clusters, boththe first incremental lift and the second incremental lift includeincremental consumption or purchase potentially caused by a clustereffect. Accordingly, in contrast to the incremental lifts of FIG. 3A,the incremental lifts of FIG. 3B reflect incremental consumption orpurchase accounted for by different clustering algorithms. In otherwords, the incremental lifts of FIG. 3B provide a directcluster-to-cluster comparison.

The incremental lifts are specific to a clustering algorithm. In someembodiments, for example, the social networking system 104 determines afirst incremental lift that reflects conversion actions attributable tothe clusters generated by the first clustering algorithm. Similarly, thesocial networking system 104 optionally determines a second incrementallift that reflects conversion actions attributable to the alternativeclusters generated by the first clustering algorithm.

The social networking system 104 also compares the effects of thedifferent clustering algorithms. As shown in FIG. 3B, the socialnetworking system 104 performs the act 354 of determining acluster-effect differential. To determine a cluster-effect differential,in some embodiments, the social networking system 104 compares the oneclustering algorithm's incremental lift to another clusteringalgorithm's incremental lift. In other words, the social networkingsystem 104 compares (a) the first incremental lift that reflectsconversion actions attributable to the clusters generated by the firstclustering algorithm to (b) the second incremental lift that reflectsconversion actions attributable to the alternative clusters generated bythe second clustering algorithm.

In some such embodiments, the social networking system 104 determines acluster-effect differential by determining a difference between thefirst and second incremental lifts. In certain cases, the socialnetworking system 104 identifies the clustering algorithm that accountsfor the higher incremental lift as the preferable clustering algorithm.This preference is based on the assumption that the clustering algorithmthat better accounts for incremental lift—or that results in a largercluster effect—more likely represents communication between users withina cluster.

Turning now to FIG. 4, this figure illustrates a sample of users andtrial groups in accordance with one or more embodiments of the actsdescribed in FIG. 3A. As noted above, in some embodiments, the socialnetworking system 104 identifies a sample of users and sorts those usersinto trial groups (e.g., by clusters or by users). FIG. 4 depicts asample of users 402 and various trial groups that the social networkingsystem 104 identifies and creates when performing some of the acts302-326.

As shown in FIG. 4, the sample of users 402 includes a user identifierand a cluster identifier for each user within the sample. In thisparticular embodiment, the social networking system 104 applies aclustering algorithm as part of identifying the sample of users 402 andassigns cluster identifiers as part of generating the clusters of users.The user identifier for each user is shown in a user-identifier column404. Similarly, the cluster identifier for each user is shown in acluster-identifier column 406. For explanatory purposes, the sample ofusers 402 depicted in FIG. 4 includes user identifiers and clusteridentifiers corresponding to twelve users. These twelve users are merelyillustrative. In additional or alternative embodiments, the sample ofusers 402 are part of a larger sample.

As further shown in FIG. 4, the social networking system 104 separatesthe clusters of users from the sample of users 402 into a first group408 a and a second group 408 b. Consistent with the disclosure above,the social networking system 104 randomly assigns the users into thefirst group 408 a or the second group 408 b according to clusteridentifiers. In other words, the social networking system 104 sortsclusters of users by cluster identifier into either (but not both) thefirst group 408 a or the second group 408 b.

After separating the users from the sample of users 402 into the firstgroup 408 a or the second group 408 b, the social networking system 104separates clusters from the first group 408 a into a first test group410 a and a first control group 412 a. In particular, the socialnetworking system 104 separates users based on cluster identifier toensure that users having a same cluster identifier are assigned toeither (but not both) the first test group 410 a or the first controlgroup 412 a.

The social networking system 104 also separates users from the secondgroup 408 b into a second test group 410 b and a second control group412 b. In particular, the social networking system 104 separates usersbased on user identifier. By separating the users according to useridentifier—and not by cluster identifier—the social networking system104 may split users who were part of a same cluster into different testor control groups. Specifically, social networking system 104 sorts theuser corresponding to the user identifier 1244 and cluster identifier6003 into the second test group 410 b. But social networking system 104sorts the user corresponding to the user identifier 1245 and clusteridentifier 6003 into the second control group 412 b. Both users sharethe cluster identifier 6003.

As further shown in FIG. 4, each of the test groups include acorresponding advertisement column, purchase column, and conversioncolumn. Each of the control groups include a corresponding purchasecolumn and conversion column. In particular, an advertisement column 414a, a purchase column 416 a, and a conversion column 418 a correspond tothe first test group 410 a; an advertisement column 414 b, a purchasecolumn 416 c, and a conversion column 418 c correspond to the secondtest group 410 b; a purchase column 416 b and a conversion column 418 bcorrespond to the first control group 412 a; and a purchase column 416 dand a conversion column 418 d correspond to the second control group 412b.

The advertisement columns 414 a and 414 b include marks indicating usersto whom the social networking system 104 delivers a digitaladvertisement that features an item. As indicated by these marks in theadvertisement columns 414 a and 414 b, the social networking system 104delivers a digital advertisement to the users having user identifiers1235 and 1240. Similarly, the purchase columns 416 a, 416 b, 416 c, and416 d include marks indicating users who purchase the featured item. Asindicated by the marks in the purchase columns 416 a-416 d, the usershaving user identifiers 1234, 1239, 1237, 1243, and 1244 purchased thefeatured item. Moreover, the conversion columns 418 a, 418 b, 418 c, and418 d include marks indicating whether a purchase represents aconversion action. As indicated by the marks in the conversion columns418 a-418 d, the purchases of the users having user identifiers 1234,1239, and 1243 represent conversion actions, but the purchases of theusers having user identifiers 1237 and 1244 do not represent conversionactions.

Consistent with the disclosure above, the social networking system 104uses the data represented in FIG. 4 to determine a first incrementallift between the first test group 410 a and the first control group 412a. Similarly, the social networking system 104 uses the data representedin FIG. 4 to determine a second incremental lift between the second testgroup 410 b and the second control group 412 b. Based on this data, thesocial networking system 104 determines a first incremental lift of twoadditional users who purchased the featured item—because two userspurchased the featured item in the first test group 410 a (as conversionactions) compared to zero users who purchased the featured item in thefirst control group 412 a. Additionally, the social networking system104 determines a second incremental lift of zero additional users whopurchased the featured item—because one user purchased the featured itemin the second test group 410 b (as a conversion action) compared to oneuser who purchased the featured item in the second control group 412 b.

In this particular embodiment, by comparing the first and secondincremental lifts, the social networking system 104 determines thecluster effect as an expression of incremental consumption—that is, acluster effect of two additional users who purchased the featured item.For explanatory purposes, FIG. 4 depicts incremental lifts and a clustereffect on a small scale. But as noted above, the social networkingsystem 104 may use a larger sample of users and determine largerincremental lifts or cluster effects using different measurements.

Turning now to FIGS. 5A and 5B, this figure illustrates a sample ofusers and trial groups in accordance with one or more embodiments of theacts described in FIG. 3B. As noted above, in some embodiments, thesocial networking system 104 identifies a sample of users and sortsthose users into trial groups by super cluster to compare differentclustering algorithms and determine a cluster-effect differential. FIGS.5A and 5B depict a sample of users 502 and various trial groups that thesocial networking system 104 identifies and creates when performing someof the acts 328-354. For explanatory purposes, the sample of users 502depicted in FIG. 5A includes user identifiers and cluster identifierscorresponding to twenty-three users. These twenty-three users are merelyillustrative. In additional or alternative embodiments, the sample ofusers 502 are part of a larger sample.

As shown in FIG. 5A, the sample of users 502 include a user identifier,a cluster identifier, and an alternative cluster identifier for eachuser within the sample. In this particular embodiment, the socialnetworking system 104 applies a first clustering algorithm and a secondclustering algorithm as part of identifying the sample of users 502. Thesocial networking system 104 further assigns a cluster identifiercorresponding to first clustering algorithm—and an alternative clusteridentifier corresponding to the second clustering algorithm—as part ofgenerating clusters of users and alternative clusters of users. Auser-identifier column 504 includes the user identifier for each user.By contrast, a cluster-identifier column 506 a includes the clusteridentifier generated by the first clustering algorithm for each user.Similarly, an alternative-cluster-identifier column 506 b includes thealternative cluster identifier generated by the second clusteringalgorithm for each user.

In addition to applying the first and second clustering algorithms togenerate clusters of users and alternative clusters of users, the socialnetworking system 104 generates super clusters. Consistent with thedisclosure above, the social networking system 104 groups one or moreclusters of users and one or more alternative clusters of users withineach super cluster and assigns each user a super-cluster identifier. Asuper-cluster-identifier column 508 includes the super-clusteridentifier for each user. As indicated by the super-cluster identifiers,some of the users within the sample of users 502 are part of (a) acluster comprising one cluster of users, on the one hand, and (b) analternative cluster comprising another cluster of users, on the otherhand. Such super clusters contain so-called overlapping users, whoinclude, but are not limited to, the users having the user identifiers137, 139, 140, 146, 147, 148, 149, 156, and 157.

As further shown in FIG. 5A, the social networking system 104 separatesthe super clusters from the sample of users 502 into a first group 510 aand a second group 510 b. Consistent with the disclosure above, thesocial networking system 104 randomly assigns the users into either (butnot both of) the first group 510 a or the second group 510 b accordingto super-cluster identifiers. In other words, the social networkingsystem 104 sorts super clusters of users by super cluster identifierinto the first group 510 a or the second group 510 b.

Turning now to FIG. 5B, after randomly separating the super clustersfrom the sample of users 402, the social networking system 104 separatessuper clusters from the first group 510 a into a first test group 512 aand a first control group 514 a. In particular, the social networkingsystem 104 separates users based on super cluster identifier to ensurethat users having a same super cluster identifier are assigned to either(but not both) the first test group 512 a or the first control group 514a.

Similarly, the social networking system 104 separates super clustersfrom the second group 510 b into a second test group 512 b and a secondcontrol group 514 b. Here again, the social networking system 104separates users based on super cluster identifier to ensure that usershaving a same super cluster identifier are assigned to either (but notboth) the second test group 512 b or the second control group 514 b.

As further shown in FIG. 5B, each of the test groups include acorresponding advertisement column, purchase column, and conversioncolumn. Each of the control groups include a corresponding purchasecolumn and conversion column. In particular, an advertisement column 516a, a purchase column 518 a, and a conversion column 520 a correspond tothe first test group 512 a; an advertisement column 516 b, a purchasecolumn 518 c, and a conversion column 520 c correspond to the secondtest group 512 b; a purchase column 518 b and a conversion column 520 bcorrespond to the first control group 514 a; and a purchase column 518 dand a conversion column 520 d correspond to the second control group 514b.

The advertisement columns 516 a and 516 b include marks indicating usersto whom the social networking system 104 delivers a digitaladvertisement that features an item. As indicated by the marks in theadvertisement columns 516 a and 516 b, the social networking system 104delivers a digital advertisement to the users having user identifiers137, 144, 150, 151, and 158. Similarly, the purchase columns 518 a, 518b, 518 c, and 518 d include marks indicating users who purchased thefeatured item. As indicated by the marks in the purchase columns 518a-518 d, the users having user identifiers 136, 146, 149, 152, and 157purchased the featured item.

By contrast, the conversion columns 520 a, 520 b, 520 c, and 520 dinclude marks indicating whether a purchase represents a conversionaction. To facilitate comparing clustering algorithms, a purchaserepresents a conversion action in the first test group 512 a only when(i) the social networking system 104 delivers a digital advertisement toa user within a cluster of users (which are designated by clusteridentifiers) and (ii) a user in the same cluster of users purchases thefeatured item. To be clear, such a conversion action includes anotheruser in the same cluster of users purchasing the featured item—even ifthe social networking system 104 did not deliver the digitaladvertisement to the purchasing user. If the social networking system104 delivers a digital advertisement to a user within a cluster of usersand a user within an alternative cluster of user purchases the featureditem, the purchase does not represent a conversion action for purposesof comparison—even when the cluster of users and the alternative clusterof users include an overlapping user. As indicated by the marks in theconversion column 520 a, the purchases of the users having useridentifiers 152 and 157 represent conversion actions.

By contrast, a purchase represents a conversion action in the secondtest group 512 b only when (i) the social networking system 104 deliversa digital advertisement to a user within an alternative cluster of users(which are designated by alternative cluster identifiers) and (ii) auser in the same alternative cluster of users purchases the featureditem. Again, to be clear, such a conversion action includes another userin the same alternative cluster of users purchasing the featureditem—even if the social networking system 104 did not deliver thedigital advertisement to the purchasing user. If the social networkingsystem 104 delivers a digital advertisement to a user within analternative cluster of users and a user within a cluster of userspurchases the featured item, the purchase does not represent aconversion action for purposes of comparison—even when the alternativecluster of users and the cluster of users include an overlapping user.As indicated by the marks in the conversion column 520 c, the purchasesof the users having user identifiers 136 and 149 do not representconversion actions. The purchase of the user having user identifier 146also does not represent a conversion action—because the socialnetworking system 104 did not deliver an advertisement to the user orany other users within his or her alternative cluster of users.

Consistent with the disclosure above, the social networking system 104uses the data represented in FIG. 5B to determine a first incrementallift between the first test group 512 a and the first control group 514a. Similarly, the social networking system 104 uses the data representedin FIG. 5B to determine a second incremental lift between the secondtest group 512 b and the second control group 514 b. Based on this data,the social networking system 104 determines a first incremental lift oftwo additional users who purchased the featured item—because two userspurchased the featured item in the first test group 512 a (as conversionactions) compared to zero users who purchased the featured item in thefirst control group 514 a. Additionally, the social networking system104 determines a second incremental lift of zero additional users whopurchased the featured item—because two users purchased the featureditem in the second test group 512 b compared to one user who purchasedthe featured item in the second control group 514 b. The secondincremental lift is zero because none of these latter purchasesrepresent conversion actions.

By comparing the first and second incremental lifts, the socialnetworking system 104 determines the cluster-effect differential as anexpression of incremental consumption that is, a cluster-effectdifferential of two additional users who purchased the featured item inthe clusters of users generated by the first clustering algorithm.Relatedly, the social networking system 104 also determines that thefirst clustering algorithm results in a cluster effect of two additionalusers who purchased the featured item and that the second clusteringalgorithm results in a cluster effect of zero additional users whopurchased the featured item. In some embodiments, the social networkingsystem 104 identifies the first clustering algorithm as the clusteringalgorithm generating clusters that more accurately reflect real-worldclusters—when compared to the second clustering algorithm—because thefirst clustering algorithm produces a larger cluster effect.

For explanatory purposes, FIG. 5B depicts incremental lifts, clustereffects, and a cluster-effect differential on a small scale. As notedabove, the social networking system 104 may use a larger sample of usersand determine larger incremental lifts, cluster effects, orcluster-effect differentials using different measurements.

As noted above, in certain embodiments, the social networking system 104generates a conversion report and target-cluster options as tools forapplying a cluster effect. The social networking system 104 in turnprovides the conversion report and target-cluster options to a clientdevice for presentation within a graphical user interface. Theconversion report provides an administrator with options to adjustdistribution of digital content to users within target clusters based ona determined cluster effect.

As shown in FIG. 6, the social networking system 104 provides aconversion report 601 to an administrator client device 600. Theadministrator client device 600 in turn presents the conversion report601 within a graphical user interface 602 of a screen 604. Theconversion report 601 represents the results of an advertisementanalysis using multiple test groups and control groups—with a first testgroup and a first control group sorted by cluster and a second testgroup and a second control group sorted by user. The social networkingsystem 104 performs this advertisement analysis to determine a specificcluster effect—the impact that one or more household members' exposureto digital content has on conversion actions by other household members.The social networking system 104 performs the advertisement analysis byperforming the acts depicted in FIG. 3A.

To represent the results of the advertisement analysis, the conversionreport 601 includes various incremental lifts. These incremental liftsrepresent first incremental lifts between the first test group and thefirst control group, on the one hand, and second incremental liftsbetween the second test group and a second control group, on the otherhand. Specifically, the conversion report 601 includes graphicsrepresenting a first incremental-sales lift 606 a, a first total lift608 a, a first incremental-consumption lift 610 a, a first conversionlift 612 a, a first incremental-spend-amount lift 614 a, and a firstaverage-spend lift 616 a. Similarly, the conversion report 601 includesgraphics representing a second incremental-sales lift 606 b, a secondtotal lift 608 b, a second incremental-consumption lift 610 b, a secondconversion lift 612 b, a second incremental-spend-amount lift 614 b, anda second average-spend lift 616 b.

As further shown in FIG. 6, the conversion report 601 includes clustereffects 618 a-618 f The social networking system 104 determines thecluster effects 618 a-618 f based on a comparison of corresponding firstincremental lifts and second incremental lifts. As shown, the conversionreport 601 includes graphics representing a first cluster effect 618 arepresenting a divergence between the first incremental-sales lift 606 aand the second incremental-sales lift 606 b; a second cluster effect 618b representing a divergence between the first total lift 608 a and thesecond total lift 608 b; a third cluster effect 618 c representing adivergence between the first incremental-consumption lift 610 a and thesecond incremental-consumption lift 610 b; a fourth cluster effect 618 drepresenting a divergence between the first conversion lift 612 a andthe second conversion lift 612 b; a fifth cluster effect 618 erepresenting a divergence between the first incremental-spend-amountlift 614 a and the second incremental-spend-amount lift 614 b; and asixth cluster effect 618 f representing a divergence between the firstaverage-spend lift 616 a and the second average-spend lift 616 b.

In addition to representations of incremental lifts and cluster effects,the conversion report 601 further includes target-cluster options. Thetarget-cluster options correspond to clusters that the social networkingsystem 104 determines as targets for increasing conversion actions—withincreased or decreased distribution to users within the cluster. Inother words, in some embodiments, the social networking system 104suggests target clusters for increased or decreased digital-contentdistribution to users. The social networking system 104 identifiesclusters comprising users to which increased digital-contentdistribution would increase conversion actions. In some suchembodiments, the social networking system 104 identifies clusters with ahighest relative cluster effect as target clusters.

As shown in FIG. 6, the social networking system 104 indicates targetclusters within the target-cluster options 620 a-620 c. The firsttarget-cluster option 620 a indicates clusters comprising multiple usersin general. The second target-cluster option 620 b indicates clusters ina particular location. The third target-cluster option 620 c indicatesclusters in a particular economic class. While some of the targetclusters in FIG. 6 represent a particular location or economic class, inadditional or alternative embodiments, the social networking system 104identifies target clusters representing different demographics,including, but not limited to, age, education level, ethnicity,political party, and religion.

When an administrator interactions with a target-cluster option (e.g.,by click or touch gesture), the administrator client device 600 sends anindication of that interaction to the social networking system 104 toadjust distribution of digital content to users within the targetcluster. For example, when the administrator client device 600 detectsan interaction with the first target-cluster option 620 a, theadministrator client device 600 sends an indication to the socialnetworking system 104 to adjust distribution of a digital advertisement.As shown in FIG. 6, the interaction indicates either increasing ordecreasing distribution of the digital advertisement to users withinclusters of users in general. The first target-cluster option 620 aincludes a radio button that (when adjusted) can increase or decrease apercentage of users within clusters to which the social networkingsystem 104 distributes digital content. The second target-cluster option620 b and the third target-cluster option 620 c function similarly tothe first target-cluster option 620 a and include radio buttons by whichdistribution may be increased or decreased.

Turning now to FIG. 7, this figure illustrates a flowchart of a seriesof acts 700 of determining a cluster effect of users' exposure todigital content on other users' conversion actions in accordance withone or more embodiments. While FIG. 7 illustrates acts according to oneembodiment, alternative embodiments may omit, add to, reorder, and/ormodify any of the acts shown in FIG. 7. The acts of FIG. 7 can beperformed as part of a method. Alternatively, a non-transitory computerreadable storage medium can comprise instructions that, when executed byone or more processors, cause a computing device to perform the actsdepicted in FIG. 7. In still further embodiments, a system can performthe acts of FIG. 7.

As shown in FIG. 7, the acts 700 include an act 710 of generatingclusters of users. In particular, in some embodiments, the act 710includes generating clusters of users, each cluster having one or moreusers of a social networking system. Additionally, in certainembodiments, generating the clusters of users comprises generating theclusters of users based on one or more of an affinity coefficient, adesignated relationship, a commonly used Internet Protocol (“IP”)address, a common physical address, a common device identifier, taggedusers within images, a common employer, and a common educationalinstitution.

Moreover, in certain embodiments, generating the clusters of userscomprises assigning user identifiers and cluster identifiers to theusers of the social networking system. Similarly, in some embodiments,generating the clusters of users comprises applying a clusteringalgorithm to assign one or more users to a particular cluster of usersbased on attributes of the one or more users. In some cases, generatingthe clusters of users comprises applying a hash function to generate theclusters of users. Relatedly, in one or more embodiments, assigning thecluster identifiers to the users of the social networking systemcomprises applying a clustering algorithm to assign the clusteridentifiers to the users of the social networking system.

In some cases, generating the clusters of users comprises generating afirst cluster comprising a single user and a second cluster comprisingmultiple users having one or more common attributes. Similarly, in oneor more embodiments, generating the clusters of users comprisesgenerating the clusters of users, wherein each cluster is a cluster ofone or more classmates, club members, coworkers, households, neighbors,organizational members, or social-network friends.

As further shown in FIG. 7, the acts 700 include an act 720 ofseparating the clusters of users into a first group of clusters and asecond group of clusters. For example, in certain embodiments,separating the clusters of users into a first group of clusters and asecond group of clusters comprises separating the clusters of users intothe first group of clusters and the second group of clusters based onthe cluster identifiers. Further, in some embodiments, separating theclusters of users into the first group of clusters and the second groupof clusters based on the cluster identifiers comprises randomlyassigning a particular cluster of users to the first group of clustersor the second group of clusters based on randomly associating a clusteridentifier corresponding to the particular cluster of users with eitherthe first group of clusters or the second group of clusters.

As further shown in FIG. 7, the acts 700 include an act 730 ofdetermining a first incremental lift. In particular, in someembodiments, the act 730 includes determining a first incremental liftbetween a first test group and a first control group each comprisingclusters of users from the first group of clusters. For example, in someembodiments, determining the first incremental lift between the firsttest group and the first control group comprises randomly assigningparticular clusters of users from the first group of clusters to thefirst test group or the first control group based on clusteridentifiers. Relatedly, in certain embodiments, determining the firstincremental lift between the first test group and the first controlgroup comprises delivering one or more instances of digital content tothe first test group but not to the first control group.

As noted above, a first incremental lift can come in differentmeasurements. For example, in some embodiments, determining the firstincremental lift between the first test group and the first controlgroup comprises determining a first average-spend lift, first conversionlift, first incremental-sales lift, first incremental-consumption lift,first incremental-spend-amount lift, or first total-sales lift.

As further shown in FIG. 7, the acts 700 include an act 740 ofdetermining a second incremental lift. In particular, in someembodiments, the act 740 includes determining a second incremental liftbetween a second test group and a second control group each comprisingindividual users from the second group of clusters. For example, in someembodiments, determining the second incremental lift between the secondtest group and the second control group comprises randomly assigningusers from the second group of clusters to the second test group or thesecond control group based on user identifiers. Relatedly, in certainembodiments, determining the second incremental lift between the secondtest group and the second control group comprises delivering the one ormore instances of digital content to the second test group but not tothe second control group.

As noted above, a second incremental lift can come in differentmeasurements. For example, in some embodiments, determining the secondincremental lift between the second test group and the second controlgroup comprises determining a second average-spend lift, secondconversion lift, second incremental-sales lift, secondincremental-consumption lift, second incremental-spend-amount lift, orsecond total-sales lift.

As further shown in FIG. 7, the acts 700 include an act 750 of comparingthe first incremental lift to the second incremental lift to determine acluster effect. For example, in some embodiments, the act 750 includesdetermining a divergence between the first incremental lift and thesecond incremental lift.

In addition to the acts 710-750, in some embodiments, the acts 700further include modifying distribution of digital content based on thecluster effect. Relatedly, in one or more embodiments, modifying thedistribution of the digital content based on the cluster effectcomprises increasing distribution of the digital content to users withinclusters comprising multiple users having one or more common attributes.

Additionally, in certain embodiments, the acts 700 further includegenerating a conversion report comprising a representation of thecluster effect; and providing the conversion report to a client device.On a related note, in one or more embodiments, the conversion reportcomprises a selectable option to adjust distribution of digital contentto users within clusters comprising multiple users having one or morecommon attributes. In some such embodiments, the conversion reportcomprises selectable options to adjust distribution of the digitalcontent to users within clusters of a target demographic or targetlocation.

Moreover, in some embodiments, the acts 700 further include applying analternative clustering algorithm to generate alternative clusters ofusers, each alternative cluster having one or more users of the socialnetworking system; separating the alternative clusters of users into analternative first group of clusters and an alternative second group ofclusters; determining an alternative first incremental lift between analternative first test group and an alternative first control group eachcomprising alternative clusters of users from the alternative firstgroup of clusters; determining an alternative second incremental liftbetween an alternative second test group and an alternative secondcontrol group each comprising individual users from the alternativesecond group of clusters; comparing the alternative first incrementallift to the alternative second incremental lift to determine analternative cluster effect; and based on a comparison of the clustereffect and the alternative cluster effect, identifying either theclustering algorithm or the alternative clustering algorithm asgenerating clusters that capture a larger cluster effect.

Embodiments of the present disclosure may comprise or utilize a specialpurpose or general-purpose computer including computer hardware, suchas, for example, one or more processors and system memory, as discussedin greater detail below. Embodiments within the scope of the presentdisclosure also include physical and other computer-readable media forcarrying or storing computer-executable instructions and/or datastructures. In particular, one or more of the processes described hereinmay be implemented at least in part as instructions embodied in anon-transitory computer-readable medium and executable by one or morecomputing devices (e.g., any of the media content access devicesdescribed herein). In general, a processor (e.g., a microprocessor)receives instructions, from a non-transitory computer-readable medium,(e.g., a memory, etc.), and executes those instructions, therebyperforming one or more processes, including one or more of the processesdescribed herein.

Computer-readable media can be any available media that can be accessedby a general purpose or special purpose computer system, including byone or more servers. Computer-readable media that storecomputer-executable instructions are non-transitory computer-readablestorage media (devices). Computer-readable media that carrycomputer-executable instructions are transmission media. Thus, by way ofexample, and not limitation, embodiments of the disclosure can compriseat least two distinctly different kinds of computer-readable media:non-transitory computer-readable storage media (devices) andtransmission media.

Non-transitory computer-readable storage media (devices) includes RAM,ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM),Flash memory, phase-change memory (“PCM”), other types of memory, otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium which can be used to store desired programcode means in the form of computer-executable instructions or datastructures and which can be accessed by a general purpose or specialpurpose computer.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission media tonon-transitory computer-readable storage media (devices) (or viceversa). For example, computer-executable instructions or data structuresreceived over a network or data link can be buffered in RAM within anetwork interface module (e.g., a “NIC”), and then eventuallytransferred to computer system RAM and/or to less volatile computerstorage media (devices) at a computer system. Thus, it should beunderstood that non-transitory computer-readable storage media (devices)can be included in computer system components that also (or evenprimarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions anddata which, when executed at a processor, cause a general-purposecomputer, special purpose computer, or special purpose processing deviceto perform a certain function or group of functions. In someembodiments, computer-executable instructions are executed on ageneral-purpose computer to turn the general-purpose computer into aspecial purpose computer implementing elements of the disclosure. Thecomputer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, or evensource code. Although the subject matter has been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appended claims is notnecessarily limited to the described features or acts described above.Rather, the described features and acts are disclosed as example formsof implementing the claims.

Those skilled in the art will appreciate that the disclosure may bepracticed in network computing environments with many types of computersystem configurations, including, virtual reality devices, personalcomputers, desktop computers, laptop computers, message processors,hand-held devices, multi-processor systems, microprocessor-based orprogrammable consumer electronics, network PCs, minicomputers, mainframecomputers, mobile telephones, PDAs, tablets, pagers, routers, switches,and the like. The disclosure may also be practiced in distributed systemenvironments where local and remote computer systems, which are linked(either by hardwired data links, wireless data links, or by acombination of hardwired and wireless data links) through a network,both perform tasks. In a distributed system environment, program modulesmay be located in both local and remote memory storage devices.

Embodiments of the present disclosure can also be implemented in cloudcomputing environments. In this description, “cloud computing” isdefined as a model for enabling on-demand network access to a sharedpool of configurable computing resources. For example, cloud computingcan be employed in the marketplace to offer ubiquitous and convenienton-demand access to the shared pool of configurable computing resources.The shared pool of configurable computing resources can be rapidlyprovisioned via virtualization and released with low management effortor service provider interaction, and then scaled accordingly.

A cloud-computing model can be composed of various characteristics suchas, for example, on-demand self-service, broad network access, resourcepooling, rapid elasticity, measured service, and so forth. Acloud-computing model can also expose various service models, such as,for example, Software as a Service (“SaaS”), Platform as a Service(“PaaS”), and Infrastructure as a Service (“IaaS”). A cloud-computingmodel can also be deployed using different deployment models such asprivate cloud, community cloud, public cloud, hybrid cloud, and soforth. In this description and in the claims, a “cloud-computingenvironment” is an environment in which cloud computing is employed.

FIG. 8 illustrates a block diagram of exemplary computing device 800that may be configured to perform one or more of the processes describedabove. One will appreciate that one or more computing devices such asthe computing device 800 may implement the digital communications systemdescribed above. Furthermore, any of the server device(s) 102, clientdevices 108 a-108 n, and administrator client device 600 can be acomputing device 800. As shown by FIG. 8, the computing device 800 cancomprise a processor 802, a memory 804, a storage device 806, an I/Ointerface 808, and a communication interface 810, which may becommunicatively coupled by way of a communication infrastructure 812.While an exemplary computing device 800 is shown in FIG. 8, thecomponents illustrated in FIG. 8 are not intended to be limiting.Additional or alternative components may be used in other embodiments.Furthermore, in certain embodiments, the computing device 800 caninclude fewer components than those shown in FIG. 8. Components of thecomputing device 800 shown in FIG. 8 will now be described in additionaldetail.

In one or more embodiments, the processor 802 includes hardware forexecuting instructions, such as those making up a computer program. Asan example and not by way of limitation, to execute instructions, theprocessor 802 may retrieve (or fetch) the instructions from an internalregister, an internal cache, the memory 804, or the storage device 806and decode and execute them. In one or more embodiments, the processor802 may include one or more internal caches for data, instructions, oraddresses. As an example and not by way of limitation, the processor 802may include one or more instruction caches, one or more data caches, andone or more translation lookaside buffers (“TLBs”). Instructions in theinstruction caches may be copies of instructions in the memory 804 orthe storage device 806.

The memory 804 may be used for storing data, metadata, and programs forexecution by the processor(s). The memory 804 may include one or more ofvolatile and non-volatile memories, such as Random Access Memory(“RAM”), Read Only Memory (“ROM”), a solid state disk (“SSD”), Flash,Phase Change Memory (“PCM”), or other types of data storage. The memory804 may be internal or distributed memory.

The storage device 806 includes storage for storing data orinstructions. As an example and not by way of limitation, storage device806 can comprise a non-transitory storage medium described above. Thestorage device 806 may include a hard disk drive (“HDD”), flash memory,an optical disc, a magneto-optical disc, magnetic tape, or a UniversalSerial Bus (“USB”) drive or a combination of two or more of these. Thestorage device 806 may include removable or non-removable (or fixed)media, where appropriate. The storage device 806 may be internal orexternal to the computing device 800. In one or more embodiments, thestorage device 806 is non-volatile, solid-state memory. In otherembodiments, the storage device 806 includes read-only memory (“ROM”).Where appropriate, this ROM may be mask programmed ROM, programmable ROM(“PROM”), erasable PROM (“EPROM”), electrically erasable PROM(“EEPROM”), electrically alterable ROM (“EAROM”), or flash memory or acombination of two or more of these.

The I/O interface 808 allows a user to provide input to, receive outputfrom, and otherwise transfer data to and receive data from computingdevice 800. The I/O interface 808 may include a mouse, a keypad or akeyboard, a touchscreen, a camera, an optical scanner, networkinterface, modem, other known I/O devices or a combination of such I/Ointerfaces. The I/O interface 808 may include one or more devices forpresenting output to a user, including, but not limited to, a graphicsengine, a display (e.g., a display screen), one or more output drivers(e.g., display drivers), one or more audio speakers, and one or moreaudio drivers. In certain embodiments, the I/O interface 808 isconfigured to provide graphical data to a display for presentation to auser. The graphical data may be representative of one or more graphicaluser interfaces and/or any other graphical content as may serve aparticular implementation.

The communication interface 810 can include hardware, software, or both.In any event, the communication interface 810 can provide one or moreinterfaces for communication (such as, for example, packet-basedcommunication) between the computing device 800 and one or more othercomputing devices or networks. As an example and not by way oflimitation, the communication interface 810 may include a networkinterface controller (“NIC”) or network adapter for communicating withan Ethernet or other wire-based network or a wireless NIC (“WNIC”) orwireless adapter for communicating with a wireless network, such as aWI-FI.

Additionally, or alternatively, the communication interface 810 mayfacilitate communications with an ad hoc network, a personal areanetwork (“PAN”), a local area network (“LAN”), a wide area network(“WAN”), a metropolitan area network (“MAN”), or one or more portions ofthe Internet or a combination of two or more of these. One or moreportions of one or more of these networks may be wired or wireless. Asan example, the communication interface 810 may facilitatecommunications with a wireless PAN (“WPAN”) (such as, for example, aBLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephonenetwork (such as, for example, a Global System for Mobile Communications(“GSM”) network), or other suitable wireless network or a combinationthereof.

Additionally, the communication interface 810 may facilitatecommunications various communication protocols. Examples ofcommunication protocols that may be used include, but are not limitedto, data transmission media, communications devices, TransmissionControl Protocol (“TCP”), Internet Protocol (“IP”), File TransferProtocol (“FTP”), Telnet, Hypertext Transfer Protocol (“HTTP”),Hypertext Transfer Protocol Secure (“HTTPS”), Session InitiationProtocol (“SIP”), Simple Object Access Protocol (“SOAP”), ExtensibleMark-up Language (“XML”) and variations thereof, Simple Mail TransferProtocol (“SMTP”), Real-Time Transport Protocol (“RTP”), User DatagramProtocol (“UDP”), Global System for Mobile Communications (“GSM”)technologies, Code Division Multiple Access (“CDMA”) technologies, TimeDivision Multiple Access (“TDMA”) technologies, Short Message Service(“SMS”), Multimedia Message Service (“MMS”), radio frequency (“RF”)signaling technologies, Long Term Evolution (“LTE”) technologies,wireless communication technologies, in-band and out-of-band signalingtechnologies, and other suitable communications networks andtechnologies.

The communication infrastructure 812 may include hardware, software, orboth that couples components of the computing device 800 to each other.As an example and not by way of limitation, the communicationinfrastructure 812 may include an Accelerated Graphics Port (“AGP”) orother graphics bus, an Enhanced Industry Standard Architecture (“EISA”)bus, a front-side bus (“FSB”), a HYPERTRANSPORT (“HT”) interconnect, anIndustry Standard Architecture (“ISA”) bus, an INFINIBAND interconnect,a low-pin-count (“LPC”) bus, a memory bus, a Micro Channel Architecture(“MCA”) bus, a Peripheral Component Interconnect (“PCI”) bus, aPCI-Express (“PCIe”) bus, a serial advanced technology attachment(“SATA”) bus, a Video Electronics Standards Association local (“VLB”)bus, or another suitable bus or a combination thereof.

As mentioned above, in one or more embodiments, the digitalcommunications system comprises a social-networking system. Asocial-networking system may enable its users (such as persons ororganizations) to interact with the system and with each other. Thesocial-networking system may, with input from a user, create and storein the social-networking system a user profile associated with the user.The user profile may include demographic information,communication-channel information, and information on personal interestsof the user. The social-networking system may also, with input from auser, create and store a record of relationships of the user with otherusers of the social-networking system, as well as provide services (e.g.wall posts, photo-sharing, on-line calendars and event organization,messaging, games, or advertisements) to facilitate social interactionbetween or among users. Also, the social-networking system may allowusers to post photographs and other visual media items to a user'sprofile page (typically known as “wall posts” or “timeline posts”) or ina photo album, both of which may be accessible to other users of thesocial-networking system depending upon the user's configured privacysettings.

FIG. 9 illustrates an example network environment 900 of asocial-networking system. Network environment 900 includes a clientdevice 906, a social networking system 902, and a third-party system 908connected to each other by a network 904. Although FIG. 9 illustrates aparticular arrangement of client device 906, social networking system902, third-party system 908, and network 904, this disclosurecontemplates any suitable arrangement of client device 906, socialnetworking system 902, third-party system 908, and network 904. As anexample and not by way of limitation, two or more of client device 906,social networking system 902, and third-party system 908 may beconnected to each other directly, bypassing network 904. As anotherexample, two or more of client device 906, social networking system 902,and third-party system 908 may be physically or logically co-locatedwith each other in whole or in part. Moreover, although FIG. 9illustrates a particular number of client devices 906, social networkingsystems 902, third-party systems 908, and networks 904, this disclosurecontemplates any suitable number of client devices 906, socialnetworking systems 902, third-party systems 908, and networks 904. As anexample and not by way of limitation, network environment 900 mayinclude multiple client devices 906, social networking systems 902,third-party systems 908, and networks 904.

This disclosure contemplates any suitable network 904. As an example andnot by way of limitation, one or more portions of network 904 mayinclude an ad hoc network, an intranet, an extranet, a virtual privatenetwork (“VPN”), a local area network (“LAN”), a wireless LAN (“WLAN”),a wide area network (“WAN”), a wireless WAN (“WWAN”), a metropolitanarea network (“MAN”), a portion of the Internet, a portion of the PublicSwitched Telephone Network (“PSTN”), a cellular telephone network, or acombination of two or more of these. Network 904 may include one or morenetworks 904.

Links may connect client device 906, social networking system 902, andthird-party system 908 to communication network 904 or to each other.This disclosure contemplates any suitable links. In particularembodiments, one or more links include one or more wireline (such as forexample Digital Subscriber Line (“DSL”) or Data Over Cable ServiceInterface Specification (“DOCSIS”)), wireless (such as for example Wi-Fior Worldwide Interoperability for Microwave Access (“WiMAX”)), oroptical (such as for example Synchronous Optical Network (“SONET”) orSynchronous Digital Hierarchy (“SDH”)) links. In particular embodiments,one or more links each include an ad hoc network, an intranet, anextranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, a portion of theInternet, a portion of the PSTN, a cellular technology-based network, asatellite communications technology-based network, another link, or acombination of two or more such links. Links need not necessarily be thesame throughout network environment 900. One or more first links maydiffer in one or more respects from one or more second links.

In particular embodiments, client device 906 may be an electronic deviceincluding hardware, software, or embedded logic components or acombination of two or more such components and capable of carrying outthe appropriate functionalities implemented or supported by clientdevice 906. As an example and not by way of limitation, a client device906 may include any of the computing devices discussed above in relationto FIG. 9. A client device 906 may enable a network user at clientdevice 906 to access network 904. A client device 906 may enable itsuser to communicate with other users at other client devices 906.

In particular embodiments, client device 906 may include a web browser,such as MICROSOFT INTERNET EXPLORER, GOOGLE CHROME or MOZILLA FIREFOX,and may have one or more add-ons, plug-ins, or other extensions, such asTOOLBAR or YAHOO TOOLBAR. A user at client device 906 may enter aUniform Resource Locator (“URL”) or other address directing the webbrowser to a particular server (such as server, or a server associatedwith a third-party system 908), and the web browser may generate a HyperText Transfer Protocol (“HTTP”) request and communicate the HTTP requestto server. The server may accept the HTTP request and communicate toclient device 906 one or more Hyper Text Markup Language (“HTML”) filesresponsive to the HTTP request. Client device 906 may render a webpagebased on the HTML files from the server for presentation to the user.This disclosure contemplates any suitable webpage files. As an exampleand not by way of limitation, webpages may render from HTML files,Extensible Hyper Text Markup Language (“XHTML”) files, or ExtensibleMarkup Language (“XML”) files, according to particular needs. Such pagesmay also execute scripts such as, for example and without limitation,those written in JAVASCRIPT, JAVA, MICROSOFT SILVERLIGHT, combinationsof markup language and scripts such as AJAX (Asynchronous JAVASCRIPT andXML), and the like. Herein, reference to a webpage encompasses one ormore corresponding webpage files (which a browser may use to render thewebpage) and vice versa, where appropriate.

In particular embodiments, social networking system 902 may be anetwork-addressable computing system that can host an online socialnetwork. Social networking system 902 may generate, store, receive, andsend social-networking data, such as, for example, user-profile data,concept-profile data, social-graph information, or other suitable datarelated to the online social network. Social networking system 902 maybe accessed by the other components of network environment 900 eitherdirectly or via network 904. In particular embodiments, socialnetworking system 902 may include one or more servers. Each server maybe a unitary server or a distributed server spanning multiple computersor multiple datacenters. Servers may be of various types, such as, forexample and without limitation, web server, news server, mail server,message server, advertising server, file server, application server,exchange server, database server, proxy server, another server suitablefor performing functions or processes described herein, or anycombination thereof. In particular embodiments, each server may includehardware, software, or embedded logic components or a combination of twoor more such components for carrying out the appropriate functionalitiesimplemented or supported by server. In particular embodiments, socialnetworking system 902 may include one or more data stores. Data storesmay be used to store various types of information. In particularembodiments, the information stored in data stores may be organizedaccording to specific data structures. In particular embodiments, eachdata store may be a relational, columnar, correlation, or other suitabledatabase. Although this disclosure describes or illustrates particulartypes of databases, this disclosure contemplates any suitable types ofdatabases. Particular embodiments may provide interfaces that enable aclient device 906, a social networking system 902, or a third-partysystem 908 to manage, retrieve, modify, add, or delete, the informationstored in data store.

In particular embodiments, social networking system 902 may store one ormore social graphs in one or more data stores. In particularembodiments, a social graph may include multiple nodes—which may includemultiple user nodes (each corresponding to a particular user) ormultiple concept nodes (each corresponding to a particular concept)—andmultiple edges connecting the nodes. Social networking system 902 mayprovide users of the online social network the ability to communicateand interact with other users. In particular embodiments, users may jointhe online social network via social networking system 902 and then addconnections (e.g., relationships) to a number of other users of socialnetworking system 902 whom they want to be connected to. Herein, theterm “friend” may refer to any other user of social networking system902 with whom a user has formed a connection, association, orrelationship via social networking system 902.

In particular embodiments, social networking system 902 may provideusers with the ability to take actions on various types of items orobjects, supported by social networking system 902. As an example andnot by way of limitation, the items and objects may include groups orsocial networks to which users of social networking system 902 maybelong, events or calendar entries in which a user might be interested,computer-based applications that a user may use, transactions that allowusers to buy or sell items via the service, interactions withadvertisements that a user may perform, or other suitable items orobjects. A user may interact with anything that is capable of beingrepresented in social networking system 902 or by an external system ofthird-party system 908, which is separate from social networking system902 and coupled to social networking system 902 via a network 904.

In particular embodiments, social networking system 902 may be capableof linking a variety of entities. As an example and not by way oflimitation, social networking system 902 may enable users to interactwith each other as well as receive content from third-party systems 908or other entities, or to allow users to interact with these entitiesthrough an application programming interfaces (“API”) or othercommunication channels.

In particular embodiments, a third-party system 908 may include one ormore types of servers, one or more data stores, one or more interfaces,including but not limited to APIs, one or more web services, one or morecontent sources, one or more networks, or any other suitable components,e.g., that servers may communicate with. A third-party system 908 may beoperated by a different entity from an entity operating socialnetworking system 902. In particular embodiments, however, socialnetworking system 902 and third-party systems 908 may operate inconjunction with each other to provide social-networking services tousers of social networking system 902 or third-party systems 908. Inthis sense, social networking system 902 may provide a platform, orbackbone, which other systems, such as third-party systems 908, may useto provide social-networking services and functionality to users acrossthe Internet.

In particular embodiments, a third-party system 908 may include athird-party content object provider. A third-party content objectprovider may include one or more sources of content objects, which maybe communicated to a client device 906. As an example and not by way oflimitation, content objects may include information regarding things oractivities of interest to the user, such as, for example, movie showtimes, movie reviews, restaurant reviews, restaurant menus, productinformation and reviews, or other suitable information. As anotherexample and not by way of limitation, content objects may includeincentive content objects, such as coupons, discount tickets, giftcertificates, or other suitable incentive objects.

In particular embodiments, social networking system 902 also includesuser-generated content objects, which may enhance a user's interactionswith social networking system 902. User-generated content may includeanything a user can add, upload, send, or “post” to social networkingsystem 902. As an example and not by way of limitation, a usercommunicates posts to social networking system 902 from a client device906. Posts may include data such as status updates or other textualdata, location information, photos, videos, links, music or othersimilar data or media. Content may also be added to social networkingsystem 902 by a third-party through a “communication channel,” such as anewsfeed or stream.

In particular embodiments, social networking system 902 may include avariety of servers, sub-systems, programs, modules, logs, and datastores. In particular embodiments, social networking system 902 mayinclude one or more of the following: a web server, action logger,API-request server, relevance-and-ranking engine, content-objectclassifier, notification controller, action log,third-party-content-object-exposure log, inference module,authorization/privacy server, search module, advertisement-targetingmodule, user-interface module, user-profile store, connection store,third-party content store, or location store. Social networking system902 may also include suitable components such as network interfaces,security mechanisms, load balancers, failover servers,management-and-network-operations consoles, other suitable components,or any suitable combination thereof. In particular embodiments, socialnetworking system 902 may include one or more user-profile stores forstoring user profiles. A user profile may include, for example,biographic information, demographic information, behavioral information,social information, or other types of descriptive information, such aswork experience, educational history, hobbies or preferences, interests,affinities, or location. Interest information may include interestsrelated to one or more categories. Categories may be general orspecific. As an example and not by way of limitation, if a user “likes”an article about a brand of shoes the category may be the brand, or thegeneral category of “shoes” or “clothing.” A connection store may beused for storing connection information about users. The connectioninformation may indicate users who have similar or common workexperience, group memberships, hobbies, educational history, or are inany way related or share common attributes. The connection informationmay also include user-defined connections between different users andcontent (both internal and external). A web server may be used forlinking social networking system 902 to one or more client devices 906or one or more third-party system 908 via network 904. The web servermay include a mail server or other messaging functionality for receivingand routing messages between social networking system 902 and one ormore client devices 906. An API-request server may allow a third-partysystem 908 to access information from social networking system 902 bycalling one or more APIs. An action logger may be used to receivecommunications from a web server about a user's actions on or off socialnetworking system 902. In conjunction with the action log, athird-party-content-object log may be maintained of user exposures tothird-party-content objects. A notification controller may provideinformation regarding content objects to a client device 906.Information may be pushed to a client device 906 as notifications, orinformation may be pulled from client device 906 responsive to a requestreceived from client device 906. Authorization servers may be used toenforce one or more privacy settings of the users of social networkingsystem 902. A privacy setting of a user determines how particularinformation associated with a user can be shared. The authorizationserver may allow users to opt in to or opt out of having their actionslogged by social networking system 902 or shared with other systems(e.g., third-party system 908), such as, for example, by settingappropriate privacy settings. Third-party-content-object stores may beused to store content objects received from third parties, such as athird-party system 908. Location stores may be used for storing locationinformation received from client devices 906 associated with users.Advertisement-pricing modules may combine social information, thecurrent time, location information, or other suitable information toprovide relevant advertisements, in the form of notifications, to auser.

FIG. 10 illustrates example social graph 1000. In particularembodiments, social networking system 902 may store one or more socialgraphs 1000 in one or more data stores. In particular embodiments,social graph 1000 may include multiple nodes—which may include multipleuser nodes 1002 or multiple concept nodes 1004—and multiple edges 1006connecting the nodes. Example social graph 1000 illustrated in FIG. 10is shown, for didactic purposes, in a two-dimensional visual maprepresentation. In particular embodiments, a social networking system902, client device 906, or third-party system 908 may access socialgraph 1000 and related social-graph information for suitableapplications. The nodes and edges of social graph 1000 may be stored asdata objects, for example, in a data store (such as a social-graphdatabase). Such a data store may include one or more searchable or queryable indexes of nodes or edges of social graph 1000.

In particular embodiments, a user node 1002 may correspond to a user ofsocial networking system 902. As an example and not by way oflimitation, a user may be an individual (human user), an entity (e.g.,an enterprise, business, or third-party application), or a group (e.g.,of individuals or entities) that interacts or communicates with or oversocial networking system 902. In particular embodiments, when a userregisters for an account with social networking system 902, socialnetworking system 902 may create a user node 1002 corresponding to theuser, and store the user node 1002 in one or more data stores. Users anduser nodes 1002 described herein may, where appropriate, refer toregistered users and user nodes 1002 associated with registered users.In addition, or as an alternative, users and user nodes 1002 describedherein may, where appropriate, refer to users that have not registeredwith social networking system 902. In particular embodiments, a usernode 1002 may be associated with information provided by a user orinformation gathered by various systems, including social networkingsystem 902. As an example and not by way of limitation, a user mayprovide his or her name, profile picture, contact information, birthdate, sex, marital status, family status, employment, educationbackground, preferences, interests, or other demographic information.Each user node of the social graph may have a corresponding web page(typically known as a profile page). In response to a request includinga user name, the social-networking system can access a user nodecorresponding to the user name, and construct a profile page includingthe name, a profile picture, and other information associated with theuser. A profile page of a first user may display to a second user all ora portion of the first user's information based on one or more privacysettings by the first user and the relationship between the first userand the second user.

In particular embodiments, a concept node 1004 may correspond to aconcept. As an example and not by way of limitation, a concept maycorrespond to a place (such as, for example, a movie theater,restaurant, landmark, or city); a website (such as, for example, awebsite associated with social networking system 902 or a third-partywebsite associated with a web-application server); an entity (such as,for example, a person, business, group, sports team, or celebrity); aresource (such as, for example, an audio file, video file, digitalphoto, text file, structured document, or application) which may belocated within social networking system 902 or on an external server,such as a web-application server; real or intellectual property (suchas, for example, a sculpture, painting, movie, game, song, idea,photograph, or written work); a game; an activity; an idea or theory;another suitable concept; or two or more such concepts. A concept node1004 may be associated with information of a concept provided by a useror information gathered by various systems, including social networkingsystem 902. As an example and not by way of limitation, information of aconcept may include a name or a title; one or more images (e.g., animage of the cover page of a book); a location (e.g., an address or ageographical location); a website (which may be associated with a URL);contact information (e.g., a phone number or an email address); othersuitable concept information; or any suitable combination of suchinformation. In particular embodiments, a concept node 1004 may beassociated with one or more data objects corresponding to informationassociated with concept nodes 1004. In particular embodiments, a conceptnode 1004 may correspond to one or more webpages.

In particular embodiments, a node in social graph 1000 may represent orbe represented by a webpage (which may be referred to as a “profilepage”). Profile pages may be hosted by or accessible to socialnetworking system 902. Profile pages may also be hosted on third-partywebsites associated with a third-party system 908. As an example and notby way of limitation, a profile page corresponding to a particularexternal webpage may be the particular external webpage and the profilepage may correspond to a particular concept node 1004. Profile pages maybe viewable by all or a selected subset of other users. As an exampleand not by way of limitation, a user node 1002 may have a correspondinguser-profile page in which the corresponding user may add content, makedeclarations, or otherwise express himself or herself. As anotherexample and not by way of limitation, a concept node 1004 may have acorresponding concept-profile page in which one or more users may addcontent, make declarations, or express themselves, particularly inrelation to the concept corresponding to concept nodes 1004.

In particular embodiments, a concept node 1004 may represent athird-party webpage or resource hosted by a third-party system 908. Thethird-party webpage or resource may include, among other elements,content, a selectable or other icon, or other inter-actable object(which may be implemented, for example, in JavaScript, AJAX, or PHPcodes) representing an action or activity. As an example and not by wayof limitation, a third-party webpage may include a selectable icon suchas “like,” “check in,” “eat,” “recommend,” or another suitable action oractivity. A user viewing the third-party webpage may perform an actionby selecting one of the icons (e.g., “eat”), causing a client device 906to send to social networking system 902 a message indicating the user'saction. In response to the message, social networking system 902 maycreate an edge (e.g., an “eat” edge) between a user node 1002corresponding to the user and a concept node 1004 corresponding to thethird-party webpage or resource and store edge 1006 in one or more datastores.

In particular embodiments, a pair of nodes in social graph 1000 may beconnected to each other by one or more edges 1006. An edge 1006connecting a pair of nodes may represent a relationship between the pairof nodes. In particular embodiments, an edge 1006 may include orrepresent one or more data objects or attributes corresponding to therelationship between a pair of nodes. As an example and not by way oflimitation, a first user may indicate that a second user is a “friend”of the first user. In response to this indication, social networkingsystem 902 may send a “friend request” to the second user. If the seconduser confirms the “friend request,” social networking system 902 maycreate an edge 1006 connecting the first user's user node 1002 to thesecond user's user node 1002 in social graph 1000 and store edge 1006 associal-graph information in one or more of data stores. In the exampleof FIG. 10, social graph 1000 includes an edge 1006 indicating a friendrelation between user nodes 1002 of user “A” and user “B” and an edgeindicating a friend relation between user nodes 1002 of user “C” anduser “B.” Although this disclosure describes or illustrates particularedges 1006 with particular attributes connecting particular user nodes1002, this disclosure contemplates any suitable edges 1006 with anysuitable attributes connecting user nodes 1002. As an example and not byway of limitation, an edge 1006 may represent a friendship, familyrelationship, business or employment relationship, fan relationship,follower relationship, visitor relationship, sub scriber relationship,superior/subordinate relationship, reciprocal relationship,non-reciprocal relationship, another suitable type of relationship, ortwo or more such relationships. Moreover, although this disclosuregenerally describes nodes as being connected, this disclosure alsodescribes users or concepts as being connected. Herein, references tousers or concepts being connected may, where appropriate, refer to thenodes corresponding to those users or concepts being connected in socialgraph 1000 by one or more edges 1006.

In particular embodiments, an edge 1006 between a user node 1002 and aconcept node 1004 may represent a particular action or activityperformed by a user associated with user node 1002 toward a conceptassociated with a concept node 1004. As an example and not by way oflimitation, as illustrated in FIG. 10, a user may “like,” “attended,”“played,” “listened,” “cooked,” “worked at,” or “watched” a concept,each of which may correspond to an edge type or subtype. Aconcept-profile page corresponding to a concept node 1004 may include,for example, a selectable “check in” icon (such as, for example, aclickable “check in” icon) or a selectable “add to favorites” icon.Similarly, after a user clicks these icons, social networking system 902may create a “favorite” edge or a “check in” edge in response to auser's action corresponding to a respective action. As another exampleand not by way of limitation, a user (user “C”) may listen to aparticular song (“Ramble On”) using a particular application (SPOTIFY,which is an online music application). In this case, social networkingsystem 902 may create a “listened” edge 1006 and a “used” edge (asillustrated in FIG. 10) between user nodes 1002 corresponding to theuser and concept nodes 1004 corresponding to the song and application toindicate that the user listened to the song and used the application.Moreover, social networking system 902 may create a “played” edge 1006(as illustrated in FIG. 10) between concept nodes 1004 corresponding tothe song and the application to indicate that the particular song wasplayed by the particular application. In this case, “played” edge 1006corresponds to an action performed by an external application (SPOTIFY)on an external audio file (the song “Imagine”). Although this disclosuredescribes particular edges 1006 with particular attributes connectinguser nodes 1002 and concept nodes 1004, this disclosure contemplates anysuitable edges 1006 with any suitable attributes connecting user nodes1002 and concept nodes 1004. Moreover, although this disclosuredescribes edges between a user node 1002 and a concept node 1004representing a single relationship, this disclosure contemplates edgesbetween a user node 1002 and a concept node 1004 representing one ormore relationships. As an example and not by way of limitation, an edge1006 may represent both that a user likes and has used at a particularconcept. Alternatively, another edge 1006 may represent each type ofrelationship (or multiples of a single relationship) between a user node1002 and a concept node 1004 (as illustrated in FIG. 10 between usernode 1002 for user “E” and concept nodes 1004 for “SPOTIFY”).

In particular embodiments, social networking system 902 may create anedge 1006 between a user node 1002 and a concept node 1004 in socialgraph 1000. As an example and not by way of limitation, a user viewing aconcept-profile page (such as, for example, by using a web browser or aspecial-purpose application hosted by the user's client device 906) mayindicate that he or she likes the concept represented by the conceptnodes 1004 by clicking or selecting a “Like” icon, which may cause theuser's client device 906 to send to social networking system 902 amessage indicating the user's liking of the concept associated with theconcept-profile page. In response to the message, social networkingsystem 902 may create an edge 1006 between user node 1002 associatedwith the user and concept nodes 1004, as illustrated by “like” edge 1006between the user and concept nodes 1004. In particular embodiments,social networking system 902 may store an edge 1006 in one or more datastores. In particular embodiments, an edge 1006 may be automaticallyformed by social networking system 902 in response to a particular useraction. As an example and not by way of limitation, if a first useruploads a picture, watches a movie, or listens to a song, an edge 1006may be formed between user node 1002 corresponding to the first user andconcept nodes 1004 corresponding to those concepts. Although thisdisclosure describes forming particular edges 1006 in particularmanners, this disclosure contemplates forming any suitable edges 1006 inany suitable manner. In one or more embodiments, the social networkingsystem 902 includes a node for each digital graphic and associatedanimation(s).

In particular embodiments, an advertisement may be text (which may beHTML-linked), one or more images (which may be HTML-linked), one or morevideos, audio, one or more ADOBE FLASH files, a suitable combination ofthese, or any other suitable advertisement in any suitable digitalformat presented on one or more webpages, in one or more e-mails, or inconnection with search results requested by a user. In addition, or asan alternative, an advertisement may be one or more sponsored stories(e.g., a news-feed or ticker item on social networking system 902). Asponsored story may be a social action by a user (such as “liking” apage, “liking” or commenting on a post on a page, RSVPing to an eventassociated with a page, voting on a question posted on a page, checkingin to a place, using an application or playing a game, or “liking” orsharing a website) that an advertiser promotes, for example, by havingthe social action presented within a pre-determined area of a profilepage of a user or other page, presented with additional informationassociated with the advertiser, bumped up or otherwise highlightedwithin news feeds or tickers of other users, or otherwise promoted. Theadvertiser may pay to have the social action promoted. As an example andnot by way of limitation, advertisements may be included among thesearch results of a search-results page, where sponsored content ispromoted over non-sponsored content.

In particular embodiments, an advertisement may be requested for displaywithin social-networking-system webpages, third-party webpages, or otherpages. An advertisement may be displayed in a dedicated portion of apage, such as in a banner area at the top of the page, in a column atthe side of the page, in a GUI of the page, in a pop-up window, in adrop-down menu, in an input field of the page, over the top of contentof the page, or elsewhere with respect to the page. In addition or as analternative, an advertisement may be displayed within an application. Anadvertisement may be displayed within dedicated pages, requiring theuser to interact with or watch the advertisement before the user mayaccess a page or utilize an application. The user may, for example viewthe advertisement through a web browser.

A user may interact with an advertisement in any suitable manner. Theuser may click or otherwise select the advertisement. By selecting theadvertisement, the user may be directed to (or a browser or otherapplication being used by the user) a page associated with theadvertisement. At the page associated with the advertisement, the usermay take additional actions, such as purchasing a product or serviceassociated with the advertisement, receiving information associated withthe advertisement, or subscribing to a newsletter associated with theadvertisement. An advertisement with audio or video may be played byselecting a component of the advertisement (like a “play button”).Alternatively, by selecting the advertisement, social networking system902 may execute or modify a particular action of the user.

An advertisement may also include social-networking-system functionalitythat a user may interact with. As an example and not by way oflimitation, an advertisement may enable a user to “like” or otherwiseendorse the advertisement by selecting an icon or link associated withendorsement. As another example and not by way of limitation, anadvertisement may enable a user to search (e.g., by executing a query)for content related to the advertiser. Similarly, a user may share theadvertisement with another user (e.g., through social networking system902) or RSVP (e.g., through social networking system 902) to an eventassociated with the advertisement. In addition or as an alternative, anadvertisement may include social-networking-system context directed tothe user. As an example and not by way of limitation, an advertisementmay display information about a friend of the user within socialnetworking system 902 who has taken an action associated with thesubject matter of the advertisement.

In particular embodiments, social networking system 902 may determinethe social-graph affinity (which may be referred to herein as“affinity”) of various social-graph entities for each other. Affinitymay represent the strength of a relationship or level of interestbetween particular objects associated with the online social network,such as users, concepts, content, actions, advertisements, other objectsassociated with the online social network, or any suitable combinationthereof. Affinity may also be determined with respect to objectsassociated with third-party systems 908 or other suitable systems. Anoverall affinity for a social-graph entity for each user, subjectmatter, or type of content may be established. The overall affinity maychange based on continued monitoring of the actions or relationshipsassociated with the social-graph entity. Although this disclosuredescribes determining particular affinities in a particular manner, thisdisclosure contemplates determining any suitable affinities in anysuitable manner.

In particular embodiments, social networking system 902 may measure orquantify social-graph affinity using an affinity coefficient (which maybe referred to herein as “coefficient”). The coefficient may representor quantify the strength of a relationship between particular objectsassociated with the online social network. The coefficient may alsorepresent a probability or function that measures a predictedprobability that a user will perform a particular action based on theuser's interest in the action. In this way, a user's future actions maybe predicted based on the user's prior actions, where the coefficientmay be calculated at least in part based on the history of the user'sactions. Coefficients may be used to predict any number of actions,which may be within or outside of the online social network. As anexample and not by way of limitation, these actions may include varioustypes of communications, such as sending messages, posting content, orcommenting on content; various types of an observation actions, such asaccessing or viewing profile pages, media, or other suitable content;various types of coincidence information about two or more social-graphentities, such as being in the same group, tagged in the samephotograph, checked-in at the same location, or attending the sameevent; or other suitable actions. Although this disclosure describesmeasuring affinity in a particular manner, this disclosure contemplatesmeasuring affinity in any suitable manner.

In particular embodiments, social networking system 902 may use avariety of factors to calculate a coefficient. These factors mayinclude, for example, user actions, types of relationships betweenobjects, location information, other suitable factors, or anycombination thereof. In particular embodiments, different factors may beweighted differently when calculating the coefficient. The weights foreach factor may be static or the weights may change according to, forexample, the user, the type of relationship, the type of action, theuser's location, and so forth. Ratings for the factors may be combinedaccording to their weights to determine an overall coefficient for theuser. As an example and not by way of limitation, particular useractions may be assigned both a rating and a weight while a relationshipassociated with the particular user action is assigned a rating and acorrelating weight (e.g., so the weights total 100%). To calculate thecoefficient of a user towards a particular object, the rating assignedto the user's actions may comprise, for example, 60% of the overallcoefficient, while the relationship between the user and the object maycomprise 40% of the overall coefficient. In particular embodiments, thesocial networking system 902 may consider a variety of variables whendetermining weights for various factors used to calculate a coefficient,such as, for example, the time since information was accessed, decayfactors, frequency of access, relationship to information orrelationship to the object about which information was accessed,relationship to social-graph entities connected to the object, short- orlong-term averages of user actions, user feedback, other suitablevariables, or any combination thereof. As an example and not by way oflimitation, a coefficient may include a decay factor that causes thestrength of the signal provided by particular actions to decay withtime, such that more recent actions are more relevant when calculatingthe coefficient. The ratings and weights may be continuously updatedbased on continued tracking of the actions upon which the coefficient isbased. Any type of process or algorithm may be employed for assigning,combining, averaging, and so forth the ratings for each factor and theweights assigned to the factors. In particular embodiments, socialnetworking system 902 may determine coefficients using machine-learningalgorithms trained on historical actions and past user responses, ordata farmed from users by exposing them to various options and measuringresponses. Although this disclosure describes calculating coefficientsin a particular manner, this disclosure contemplates calculatingcoefficients in any suitable manner.

In particular embodiments, social networking system 902 may calculate acoefficient based on a user's actions. Social networking system 902 maymonitor such actions on the online social network, on a third-partysystem 908, on other suitable systems, or any combination thereof. Anysuitable type of user actions may be tracked or monitored. Typical useractions include viewing profile pages, creating or posting content,interacting with content, joining groups, listing and confirmingattendance at events, checking-in at locations, liking particular pages,creating pages, and performing other tasks that facilitate socialaction. In particular embodiments, social networking system 902 maycalculate a coefficient based on the user's actions with particulartypes of content. The content may be associated with the online socialnetwork, a third-party system 908, or another suitable system. Thecontent may include users, profile pages, posts, news stories,headlines, instant messages, chat room conversations, emails,advertisements, pictures, video, music, other suitable objects, or anycombination thereof. Social networking system 902 may analyze a user'sactions to determine whether one or more of the actions indicate anaffinity for subject matter, content, other users, and so forth. As anexample and not by way of limitation, if a user may make frequentlyposts content related to “coffee” or variants thereof, social networkingsystem 902 may determine the user has a high coefficient with respect tothe concept “coffee.” Particular actions or types of actions may beassigned a higher weight and/or rating than other actions, which mayaffect the overall calculated coefficient. As an example and not by wayof limitation, if a first user emails a second user, the weight or therating for the action may be higher than if the first user simply viewsthe user-profile page for the second user.

In particular embodiments, social networking system 902 may calculate acoefficient based on the type of relationship between particularobjects. Referencing the social graph 1000, social networking system 902may analyze the number and/or type of edges 1006 connecting particularuser nodes 1002 and concept nodes 1004 when calculating a coefficient.As an example and not by way of limitation, user nodes 1002 that areconnected by a spouse-type edge (representing that the two users aremarried) may be assigned a higher coefficient than user nodes 1002 thatare connected by a friend-type edge. In other words, depending upon theweights assigned to the actions and relationships for the particularuser, the overall affinity may be determined to be higher for contentabout the user's spouse than for content about the user's friend. Inparticular embodiments, the relationships a user has with another objectmay affect the weights and/or the ratings of the user's actions withrespect to calculating the coefficient for that object. As an exampleand not by way of limitation, if a user is tagged in first photo, butmerely likes a second photo, social networking system 902 may determinethat the user has a higher coefficient with respect to the first photothan the second photo because having a tagged-in-type relationship withcontent may be assigned a higher weight and/or rating than having alike-type relationship with content. In particular embodiments, socialnetworking system 902 may calculate a coefficient for a first user basedon the relationship one or more second users have with a particularobject. In other words, the connections and coefficients other usershave with an object may affect the first user's coefficient for theobject. As an example and not by way of limitation, if a first user isconnected to or has a high coefficient for one or more second users, andthose second users are connected to or have a high coefficient for aparticular object, social networking system 902 may determine that thefirst user should also have a relatively high coefficient for theparticular object. In particular embodiments, the coefficient may bebased on the degree of separation between particular objects. Degree ofseparation between any two nodes is defined as the minimum number ofhops required to traverse the social graph from one node to the other. Adegree of separation between two nodes can be considered a measure ofrelatedness between the users or the concepts represented by the twonodes in the social graph. For example, two users having user nodes thatare directly connected by an edge (i.e., are first-degree nodes) may bedescribed as “connected users” or “friends.” Similarly, two users havinguser nodes that are connected only through another user node (i.e., aresecond-degree nodes) may be described as “friends of friends.” The lowercoefficient may represent the decreasing likelihood that the first userwill share an interest in content objects of the user that is indirectlyconnected to the first user in the social graph 1000. As an example andnot by way of limitation, social-graph entities that are closer in thesocial graph 1000 (i.e., fewer degrees of separation) may have a highercoefficient than entities that are further apart in the social graph1000.

In particular embodiments, social networking system 902 may calculate acoefficient based on location information. Objects that aregeographically closer to each other may be considered to be morerelated, or of more interest, to each other than more distant objects.In particular embodiments, the coefficient of a user towards aparticular object may be based on the proximity of the object's locationto a current location associated with the user (or the location of aclient device 906 of the user). A first user may be more interested inother users or concepts that are closer to the first user. As an exampleand not by way of limitation, if a user is one mile from an airport andtwo miles from a gas station, social networking system 902 may determinethat the user has a higher coefficient for the airport than the gasstation based on the proximity of the airport to the user.

In particular embodiments, social networking system 902 may performparticular actions with respect to a user based on coefficientinformation. Coefficients may be used to predict whether a user willperform a particular action based on the user's interest in the action.A coefficient may be used when generating or presenting any type ofobjects to a user, such as advertisements, search results, news stories,media, messages, notifications, or other suitable objects. Thecoefficient may also be utilized to rank and order such objects, asappropriate. In this way, social networking system 902 may provideinformation that is relevant to user's interests and currentcircumstances, increasing the likelihood that they will find suchinformation of interest. In particular embodiments, social networkingsystem 902 may generate content based on coefficient information.Content objects may be provided or selected based on coefficientsspecific to a user. As an example and not by way of limitation, thecoefficient may be used to generate media for the user, where the usermay be presented with media for which the user has a high overallcoefficient with respect to the media object. As another example and notby way of limitation, the coefficient may be used to generateadvertisements for the user, where the user may be presented withadvertisements for which the user has a high overall coefficient withrespect to the advertised object. In particular embodiments, socialnetworking system 902 may generate search results based on coefficientinformation. Search results for a particular user may be scored orranked based on the coefficient associated with the search results withrespect to the querying user. As an example and not by way oflimitation, search results corresponding to objects with highercoefficients may be ranked higher on a search-results page than resultscorresponding to objects having lower coefficients.

In particular embodiments, social networking system 902 may calculate acoefficient in response to a request for a coefficient from a particularsystem or process. To predict the likely actions a user may take (or maybe the subject of) in a given situation, any process may request acalculated coefficient for a user. The request may also include a set ofweights to use for various factors used to calculate the coefficient.This request may come from a process running on the online socialnetwork, from a third-party system 908 (e.g., via an API or othercommunication channel), or from another suitable system. In response tothe request, social networking system 902 may calculate the coefficient(or access the coefficient information if it has previously beencalculated and stored). In particular embodiments, social networkingsystem 902 may measure an affinity with respect to a particular process.Different processes (both internal and external to the online socialnetwork) may request a coefficient for a particular object or set ofobjects. Social networking system 902 may provide a measure of affinitythat is relevant to the particular process that requested the measure ofaffinity. In this way, each process receives a measure of affinity thatis tailored for the different context in which the process will use themeasure of affinity.

In connection with social-graph affinity and affinity coefficients,particular embodiments may utilize one or more systems, components,elements, functions, methods, operations, or acts disclosed in U.S.patent application Ser. No. 11/503,093, filed 11 Aug. 2006, U.S. patentapplication Ser. No. 12/978,027, filed 22 Dec. 2010, U.S. patentapplication Ser. No. 12/978,265, filed 23 Dec. 2010, and U.S. patentapplication Ser. No. 13/642,869, filed 1 Oct. 2012, each of which isincorporated by reference.

In particular embodiments, one or more of the content objects of theonline social network may be associated with a privacy setting. Theprivacy settings (or “access settings”) for an object may be stored inany suitable manner, such as, for example, in association with theobject, in an index on an authorization server, in another suitablemanner, or any combination thereof. A privacy setting of an object mayspecify how the object (or particular information associated with anobject) can be accessed (e.g., viewed or shared) using the online socialnetwork. Where the privacy settings for an object allow a particularuser to access that object, the object may be described as being“visible” with respect to that user. As an example and not by way oflimitation, a user of the online social network may specify privacysettings for a user-profile page identify a set of users that may accessthe work experience information on the user-profile page, thus excludingother users from accessing the information. In particular embodiments,the privacy settings may specify a “blocked list” of users that shouldnot be allowed to access certain information associated with the object.In other words, the blocked list may specify one or more users orentities for which an object is not visible. As an example and not byway of limitation, a user may specify a set of users that may not accessphotos albums associated with the user, thus excluding those users fromaccessing the photo albums (while also possibly allowing certain usersnot within the set of users to access the photo albums). In particularembodiments, privacy settings may be associated with particularsocial-graph elements. Privacy settings of a social-graph element, suchas a node or an edge, may specify how the social-graph element,information associated with the social-graph element, or content objectsassociated with the social-graph element can be accessed using theonline social network. As an example and not by way of limitation, aparticular concept node 1004 corresponding to a particular photo mayhave a privacy setting specifying that the photo may only be accessed byusers tagged in the photo and their friends. In particular embodiments,privacy settings may allow users to opt in or opt out of having theiractions logged by social networking system 902 or shared with othersystems (e.g., third-party system 908). In particular embodiments, theprivacy settings associated with an object may specify any suitablegranularity of permitted access or denial of access. As an example andnot by way of limitation, access or denial of access may be specifiedfor particular users (e.g., only me, my roommates, and my boss), userswithin a particular degrees-of-separation (e.g., friends, orfriends-of-friends), user groups (e.g., the gaming club, my family),user networks (e.g., employees of particular employers, students oralumni of particular university), all users (“public”), no users(“private”), users of third-party systems 908, particular applications(e.g., third-party applications, external websites), other suitableusers or entities, or any combination thereof. Although this disclosuredescribes using particular privacy settings in a particular manner, thisdisclosure contemplates using any suitable privacy settings in anysuitable manner.

In particular embodiments, one or more servers may beauthorization/privacy servers for enforcing privacy settings. Inresponse to a request from a user (or other entity) for a particularobject stored in a data store, social networking system 902 may send arequest to the data store for the object. The request may identify theuser associated with the request and may only be sent to the user (or aclient device 906 of the user) if the authorization server determinesthat the user is authorized to access the object based on the privacysettings associated with the object. If the requesting user is notauthorized to access the object, the authorization server may preventthe requested object from being retrieved from the data store, or mayprevent the requested object from be sent to the user. In the searchquery context, an object may only be generated as a search result if thequerying user is authorized to access the object. In other words, theobject must have a visibility that is visible to the querying user. Ifthe object has a visibility that is not visible to the user, the objectmay be excluded from the search results. Although this disclosuredescribes enforcing privacy settings in a particular manner, thisdisclosure contemplates enforcing privacy settings in any suitablemanner.

The foregoing specification is described with reference to specificexemplary embodiments thereof. Various embodiments and aspects of thedisclosure are described with reference to details discussed herein, andthe accompanying drawings illustrate the various embodiments. Thedescription above and drawings are illustrative and are not to beconstrued as limiting. Numerous specific details are described toprovide a thorough understanding of various embodiments.

The additional or alternative embodiments may be embodied in otherspecific forms without departing from its spirit or essentialcharacteristics. The described embodiments are to be considered in allrespects only as illustrative and not restrictive. The scope of thepresent disclosure is, therefore, indicated by the appended claimsrather than by the foregoing description. All changes that come withinthe meaning and range of equivalency of the claims are to be embracedwithin their scope.

We claim:
 1. A method comprising: generating clusters of users, eachcluster having one or more users of a social networking system;separating the clusters of users into a first group of clusters and asecond group of clusters; determining a first incremental lift between afirst test group and a first control group each comprising clusters ofusers from the first group of clusters; determining a second incrementallift between a second test group and a second control group eachcomprising individual users from the second group of clusters; andcomparing the first incremental lift to the second incremental lift todetermine a cluster effect.
 2. The method of claim 1, wherein generatingthe clusters of users comprises generating the clusters of users basedon one or more of an affinity coefficient, a designated relationship, acommonly used Internet Protocol (“IP”) address, a common physicaladdress, a common device identifier, tagged users within images, acommon employer, or a common educational institution.
 3. The method ofclaim 1, further comprising modifying distribution of digital contentbased on the cluster effect.
 4. The method of claim 3, wherein modifyingthe distribution of the digital content based on the cluster effectcomprises increasing distribution of the digital content to users withinclusters comprising multiple users having one or more common attributes.5. The method of claim 1, further comprising: generating a conversionreport comprising a representation of the cluster effect; and providingthe conversion report to a client device.
 6. The method of claim 5,wherein the conversion report comprises a selectable option to adjustdistribution of digital content to users within clusters comprisingmultiple users having one or more common attributes.
 7. The method ofclaim 6, wherein the conversion report comprises selectable options toadjust distribution of the digital content to users within clusters of atarget demographic or target location.
 8. A system comprising: at leastone processor; and at least one non-transitory computer readable storagemedium storing instructions that, when executed by the at least oneprocessor, cause the system to: generate clusters of users, each clusterhaving one or more users of a social networking system; separate theclusters of users into a first group of clusters and a second group ofclusters; determine a first incremental lift between a first test groupand a first control group each comprising clusters of users from thefirst group of clusters; determine a second incremental lift between asecond test group and a second control group each comprising individualusers from the second group of clusters; and compare the firstincremental lift to the second incremental lift to determine a clustereffect.
 9. The system of claim 8, wherein: the instructions that causethe system to generate the clusters of users comprise instructions that,when executed by the at least one processor, cause the system to assignuser identifiers and cluster identifiers to the users of the socialnetworking system; and the instructions that cause the system toseparate the clusters of users into the first group of clusters and thesecond group of clusters comprise instructions that, when executed bythe at least one processor, cause the system to separate the clusters ofusers into the first group of clusters and the second group of clustersbased on the cluster identifiers.
 10. The system of claim 9, wherein theinstructions that cause the system to assign the cluster identifiers tothe users of the social networking system comprise instructions that,when executed by the at least one processor, cause the system to apply aclustering algorithm to assign the cluster identifiers to the users ofthe social networking system.
 11. The system of claim 10, wherein theinstructions that cause the system to separate the clusters of usersinto the first group of clusters and the second group of clusters basedon the cluster identifiers comprise instructions that, when executed bythe at least one processor, cause the system to randomly assign aparticular cluster of users to the first group of clusters or the secondgroup of clusters based on randomly associating a cluster identifiercorresponding to the particular cluster of users with either the firstgroup of clusters or the second group of clusters.
 12. The system ofclaim 9, wherein: the instructions that cause the system to determinethe first incremental lift between the first test group and the firstcontrol group comprise instructions that, when executed by the at leastone processor, cause the system to randomly assign particular clustersof users from the first group of clusters to the first test group or thefirst control group based on cluster identifiers; and the instructionsthat cause the system to determine the second incremental lift betweenthe second test group and the second control group comprise instructionsthat, when executed by the at least one processor, cause the system torandomly assign users from the second group of clusters to the secondtest group or the second control group based on user identifiers. 13.The system of claim 8, wherein: the instructions that cause the systemto determine the first incremental lift between the first test group andthe first control group comprise instructions that, when executed by theat least one processor, cause the system to deliver one or moreinstances of digital content to the first test group but not to thefirst control group; and the instructions that cause the system todetermine the second incremental lift between the second test group andthe second control group comprise instructions that, when executed bythe at least one processor, cause the system to deliver the one or moreinstances of digital content to the second test group but not to thesecond control group.
 14. The system of claim 8, wherein theinstructions that cause the system to generate clusters of userscomprise instructions that, when executed by the at least one processor,cause the system to apply a clustering algorithm to assign one or moreusers to a particular cluster of users based on attributes of the one ormore users.
 15. The system of claim 14, further comprising instructionsthat, when executed by the at least one processor, cause the system to:apply an alternative clustering algorithm to generate alternativeclusters of users, each alternative cluster having one or more users ofthe social networking system; separate the alternative clusters of usersinto an alternative first group of clusters and an alternative secondgroup of clusters; determine an alternative first incremental liftbetween an alternative first test group and an alternative first controlgroup each comprising alternative clusters of users from the alternativefirst group of clusters; determine an alternative second incrementallift between an alternative second test group and an alternative secondcontrol group each comprising individual users from the alternativesecond group of clusters; compare the alternative first incremental liftto the alternative second incremental lift to determine an alternativecluster effect; and based on a comparison of the cluster effect and thealternative cluster effect, identify either the clustering algorithm orthe alternative clustering algorithm as generating clusters that capturea larger cluster effect.
 16. A non-transitory computer readable mediumstoring instructions thereon that, when executed by at least oneprocessor, cause a computer system to: generate clusters of users, eachcluster having one or more users of a social networking system; separatethe clusters of users into a first group of clusters and a second groupof clusters; determine a first incremental lift between a first testgroup and a first control group each comprising clusters of users fromthe first group of clusters; determine a second incremental lift betweena second test group and a second control group each comprisingindividual users from the second group of clusters; and compare thefirst incremental lift to the second incremental lift to determine acluster effect.
 17. The non-transitory computer readable medium of claim16, wherein the instructions that cause the computer system to generatethe clusters of users comprise instructions that, when executed by theat least one processor, cause the computer system to generate a firstcluster comprising a single user and a second cluster comprisingmultiple users having one or more common attributes.
 18. Thenon-transitory computer readable medium of claim 16, wherein theinstructions that cause the computer system to generate the clusters ofusers comprise instructions that, when executed by the at least oneprocessor, cause the computer system to generate the clusters of users,wherein each cluster is a cluster of one or more classmates, clubmembers, coworkers, households, neighbors, organizational members, orsocial-network friends.
 19. The non-transitory computer readable mediumof claim 16, wherein: the instructions that cause the computer system todetermine the first incremental lift between the first test group andthe first control group comprise instructions that, when executed by theat least one processor, cause the computer system to determine a firstaverage-spend lift, first conversion lift, first incremental-sales lift,first incremental-consumption lift, first incremental-spend-amount lift,or first total-sales lift; and the instructions that cause the computersystem to determine the second incremental lift between the second testgroup and the second control group comprise instructions that, whenexecuted by the at least one processor, cause the computer system todetermine a second average-spend lift, second conversion lift, secondincremental-sales lift, second incremental-consumption lift, secondincremental-spend-amount lift, or second total-sales lift.
 20. Thenon-transitory computer readable medium of claim 16, wherein theinstructions that cause the computer system to compare the firstincremental lift to the second incremental lift to determine the clustereffect comprise instructions that, when executed by the at least oneprocessor, cause the computer system to determine a divergence betweenthe first incremental lift and the second incremental lift.